sched:sch_cake:修复批量流量会计逻辑以实现主机公平性(CVE-2024-46828)

admin 2024-09-29 01:01:09 Ali_nvd 来源:ZONE.CI 全球网 0 阅读模式
sched:sch_cake:修复批量流量会计逻辑以实现主机公平性(CVE-2024-46828)

CVE编号

CVE-2024-46828

利用情况

暂无

补丁情况

N/A

披露时间

2024-09-27
漏洞描述
在Linux内核中,已经解决了一个漏洞,具体描述如下:关于调度器(sched)中的sch_cake模块,修复了批量流计费逻辑的缺陷以保证主机公平性。在sch_cake中,我们在主机公平模式下跟踪每个主机的活动批量流的计数。这个计数被用作遍历流时的轮询权重。每当流状态发生变化时,活动批量流的计数都会更新。这个问题与哈希碰撞处理有特殊的交互:当发生哈希碰撞(在集合关联哈希之后)时,哈希桶的状态会简单地更新以匹配碰撞的新数据包。如果启用了主机公平性,这也意味着为流分配新的主机状态。因此,分配给流的主机的批量流计数器在分配新状态之前会减少(并且可能不属于同一主机的计数器会再次增加)。当初引入此代码时,主机公平模式是默认启用的,因此减少是无条件的。当引入配置标志时,增量变为有条件,但减量仍然是无条件的。这自然可能导致一个虚假的减少(以及相关的环绕到U16_MAX)。据我所知,当禁用主机公平性时,减少和环绕会在发生哈希碰撞时立即发生(这在集合关联哈希本身并不常见)。然而,在大多数情况下,这是无害的,因为这个值只在启用主机公平模式时使用。因此,为了触发数组溢出,sch_cake首先必须在禁用主机公平性的情况下配置,并且在以这种模式运行时,必须发生哈希碰撞导致溢出。然后,qdisc必须重新配置以启用主机公平性,这会导致数组越界,因为环绕的值被保留并用作数组索引。似乎syzbot设法触发了这一点,这在某种程度上是相当令人印象深刻的。此补丁通过引入与增量相同的条件检查来修复这个问题。原始错误出现在蛋糕的上游之前,但修复标签中列出的提交触及了那段代码,这意味着在此之前的补丁不适用。
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接
https://git.kernel.org/stable/c/4a4eeefa514db570be025ab46d779af180e2c9bb
https://git.kernel.org/stable/c/546ea84d07e3e324644025e2aae2d12ea4c5896e
https://git.kernel.org/stable/c/549e407569e08459d16122341d332cb508024094
https://git.kernel.org/stable/c/7725152b54d295b7da5e34c2f419539b30d017bd
https://git.kernel.org/stable/c/cde71a5677971f4f1b69b25e854891dbe78066a4
https://git.kernel.org/stable/c/d4a9039a7b3d8005b90c7b1a55a306444f0e5447
https://git.kernel.org/stable/c/d7c01c0714c04431b5e18cf17a9ea68a553d1c3c
CVSS3评分 N/A
  • 攻击路径 N/A
  • 攻击复杂度 N/A
  • 权限要求 N/A
  • 影响范围 N/A
  • 用户交互 N/A
  • 可用性 N/A
  • 保密性 N/A
  • 完整性 N/A
N/A
CWE-ID 漏洞类型
- avd.aliyun.com
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0