CVE-2026-43210Linux内核tracing子系统的ring-buffer组件存在安全漏洞。`rb_read_data_buffer`函数在处理ring buffer数据时,未对事件长度字段进行验证就直接用于计算下一个事件的内存地址。由于该函数用于验证可能受损的ring buffer,若事件长度损坏,计算出的地址将指向错误区域。这会导致内核在启动或读取时发生无效内存访问,进而引发系统崩溃或拒绝服务。
该漏洞源于Linux内核`kernel/trace/ring_buffer.c`中`rb_read_data_buffer`函数的逻辑缺陷。该函数负责从环形缓冲区读取数据,通过当前事件指针`e`加上长度`len`来定位下一个事件。然而,代码在执行`e + len`操作前,并未检查`len`是否在合法的范围内。Ring buffer常用于存储内核追踪信息,可能在系统崩溃、硬件故障或特定调试场景下包含损坏的数据。攻击者若能通过本地低权限账户触发对这类损坏数据的读取操作(例如利用perf工具或ftrace接口),即可利用此漏洞。由于利用条件仅需要本地低权限且无需用户交互,攻击门槛较低。错误的长度值会导致指针算术运算结果超出缓冲区边界,访问非法内存地址,最终触发内核异常(Kernel Panic),导致系统拒绝服务。