CVE-2026-23379Linux内核中的ETS调度器在卸载路径中存在除零错误漏洞。该漏洞由于在计算WRR权重时使用32位无符号整数累加配额总和,导致整数溢出。溢出可能使除数变为零,进而触发内核恐慌。本地低权限攻击者可利用此漏洞导致系统崩溃,造成拒绝服务。
该漏洞位于Linux内核的`net/sched/ets.c`文件中的`ets_offload_change`函数。在启用ETS(增强传输选择)卸载功能时,内核需要计算每个类的加权轮询(WRR)权重。此过程涉及将各个DRR(差额轮询)的配额值累加到`q_sum`和`q_psum`变量中。由于这些变量被声明为32位无符号整数(unsigned int),当累加的配额总和超过2^32时,会发生整数回绕溢出。溢出后的值可能变为0,导致后续计算中的除法操作出现除以零的情况。根据堆栈跟踪,崩溃点位于`ets_offload_change`指令处,引发内核恐慌。修复方案是将相关变量类型提升为64位无符号整数(u64),以扩大数值范围防止溢出。