# net_sched: sch_sfq: 拒绝无效的扰动周期
## 漏洞概述
在Linux内核中,`sch_sfq`模块存在一个漏洞,即SFQ的`perturb_period`参数没有进行有效的范围检查,这可能导致溢出或负值触发竞态条件。
## 影响版本
未明确指定受影响的版本,但该漏洞存在于使用`sch_sfq`模块的Linux内核版本中。
## 细节
SFQ的`perturb_period`参数没有进行范围检查,开发者引入了针对此问题的修复,以确保`ctl->perturb_period * HZ`不会溢出并且是正值。
提供的测试案例示例如下:
```bash
tc qd add dev lo root sfq perturb -10 # 负值:错误
Error: sch_sfq: invalid perturb period.
tc qd add dev lo root sfq perturb 1000000000 # 值过大:错误
Error: sch_sfq: invalid perturb period.
tc qd add dev lo root sfq perturb 2000000 # 可接受的值
tc -s -d qd sh dev lo
qdisc sfq 8005: root refcnt 2 limit 127p quantum 64Kb depth 127 flows 128 divisor 1024 perturb 2000000sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
```
## 影响
此漏洞可能导致内核参数配置错误,进而可能引起系统不稳定或潜在的安全问题,如拒绝服务(DoS)攻击等。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: net_sched: sch_sfq: reject invalid perturb period - kernel/git/stable/linux.git - Linux kernel stable tree -- 🔗来源链接
标签: