# net_sched: hfsc: 修复类处理中的一个UAF漏洞
## 漏洞概述
Linux 内核中的 HFSC qdisc 类处理存在 Use-After-Free (UAF) 漏洞。该漏洞由 `hfsc_change_class()` 函数在处理特定子 qdisc(如 netem 或 codel)时的时间检查/时间使用条件问题引起。
## 影响版本
此漏洞存在于使用涉及特定 qdisc 的 HFSC 类处理的 Linux 内核版本中。
## 细节
漏洞的工作机制如下:
1. `hfsc_change_class()` 检查类是否有数据包(`q.qlen != 0`)。
2. 然后调用 `qdisc_peek_len()`,对于某些 qdisc(如 codel 或 netem),可能会丢弃数据包并清空队列。
3. 代码继续假设队列仍然非空,并将该类添加到 `vttree`。
4. 这违反了 HFSC 调度程序的假设,即只有非空类存在于 `vttree` 中。
5. 这导致在类被销毁时发生 Use-After-Free。
## 修复方案
修复方案在调用 `qdisc_peek_len()` 之后增加了第二个队列长度检查,以验证队列是否未被清空。
## 影响
该漏洞可能导致 Use-After-Free 错误,从而引发潜在的安全问题,如应用程序崩溃或可能的权限提升。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签: