CVE-2026-31423Linux内核中的HFSC网络调度器存在一个除零错误漏洞。在`rtsc_min()`函数中,由于将u64差值截断存储在u32变量中,当特定大数值输入导致差值为2^32时,变量变为0并作为除数,引发内核崩溃。本地低权限攻击者可利用此漏洞导致系统拒绝服务。
该漏洞位于Linux内核的`net/sched/sch_hfsc.c`文件中,涉及层次式公平服务曲线(HFSC)调度器的实现。漏洞由数据类型截断引起:`m2sm()`函数将u32斜率转换为u64缩放值,当输入如4000000000时,计算结果可达2^32。在`rtsc_min()`函数中,两个u64值的差值被赋值给u32变量`dsm`。当差值恰好为2^32时,因u32溢出截断,`dsm`被置为0。随后代码执行除法运算使用`dsm`作为除数,触发除零异常(divide error)。调用栈显示`hfsc_enqueue` -> `init_ed` -> `rtsc_min`。攻击者可通过构造特定的流量控制配置(如设置特定的服务曲线参数m1)触发该路径,导致内核Oops及系统崩溃。