CVE-2026-23255CVE-2026-23255是Linux内核中的一个RCU(Read-Copy-Update)竞态条件漏洞,存在于net子系统的/proc/net/ptype文件处理代码中。该漏洞由于ptype_seq_show()和ptype_seq_next()函数违反RCU规则导致。ptype_seq_show()在rcu_read_lock()保护下读取pt->dev获取设备名称时缺少内存屏障,而并发写线程可以在不等待RCU宽限期的情况下移除packet_type结构体并清除pt->dev,从而引发RCU stall(stall)。攻击者可通过本地低权限访问触发此漏洞,导致系统可用性下降(拒绝服务)。CVSS评分5.5,属于中等严重程度。
该漏洞的根本原因在于/proc/net/ptype接口的seq_file迭代器实现违反了RCU(Read-Copy-Update)同步机制的安全使用规则。具体问题包括:(1) ptype_seq_show()函数在rcu_read_lock()保护下读取pt->dev字段获取网络设备名称时,缺少必要的内存屏障(memory barrier)保护;(2) ptype_seq_next()函数在遍历链表时缺少READ_ONCE()保护,当读取list.next值时可能发生数据竞争;(3) 并发写线程可以移除packet_type结构体并在不等待RCU宽限期(grace period)的情况下直接清除pt->dev指针。修复方案包括:定义ptype_iter_state结构体来携带设备指针,通过seq_net_private和新增的dev字段记录状态;在ptype_get_idx()和ptype_seq_next()中正确记录设备指针,确保ptype_seq_show()访问pt->dev时的安全性;在ptype_seq_next()中添加完整的RCU保护和READ_ONCE()内存屏障。