CVE-2026-31642Linux内核中的rxrpc模块存在一个安全漏洞,涉及调用列表的删除机制。由于在从rxnet->calls列表中移除调用时错误地使用了list_del_init()而非list_del_rcu(),导致在读取/proc/net/rxrpc/calls时可能进入无限循环。该漏洞允许本地低权限用户通过特定操作触发系统不可用状态,造成拒绝服务攻击。
该漏洞源于Linux内核网络子系统rxrpc的引用计数和列表管理逻辑。漏洞的核心在于并发访问控制:当调用对象被释放时,原代码使用了list_del_init()进行删除,这破坏了RCU(Read-Copy-Update)机制的预期行为。在并发场景下,若用户空间程序读取/proc/net/rxrpc/calls文件,内核会遍历rxnet->calls链表。如果此时链表节点被非RCU安全的方式删除,遍历过程可能因指针状态异常而陷入无限循环,导致CPU资源耗尽。修复方案将删除操作改为list_del_rcu(),并优化了销毁函数的逻辑,确保了列表操作的安全性,防止了死循环的发生。