CVE-2026-31634Linux内核中的RxRPC网络协议模块存在一个安全漏洞,被编号为CVE-2026-31634。该漏洞的核心问题在于引用计数管理不当,具体发生在`rxrpc_server_keyring`函数的实现中。由于代码逻辑未能正确检查`rx->securities`指针是否已被初始化,导致在特定场景下对内核对象的引用计数被错误地增加而未被相应释放。这种引用计数泄漏会逐渐消耗系统的内核内存资源。虽然攻击者需要拥有本地低权限账号才能触发该漏洞,但通过反复执行特定的系统调用或操作RxRPC套接字,攻击者可以累积这种泄漏,最终导致系统内存耗尽,引发系统崩溃或拒绝服务,严重影响系统的可用性。
该漏洞源于Linux内核RxRPC子系统在处理服务器端密钥环时的逻辑缺陷。在`rxrpc_server_keyring`函数中,代码负责为RxRPC服务套接字设置安全上下文。漏洞触发点在于,当`rx->securities`指针已经指向一个有效的密钥环对象时,函数没有进行必要的检查就直接进行引用计数操作或覆盖,导致原有的引用计数无法平衡,即发生了“泄漏”。从技术原理上看,内核中的引用计数机制用于确保对象在使用期间不被释放,使用完毕后必须递减计数。由于此漏洞的存在,每次触发该代码路径都会导致计数值永久偏高,使得内核垃圾回收机制无法回收这些内存对象。攻击向量为本地(AV:L),攻击者可以编写程序利用socket系统调用创建AF_RXRPC类型的套接字,并进行特定的绑定或控制操作来反复触发该函数。随着泄漏的累积,内核可用内存将不断减少,最终触发OOM Killer杀死关键进程或导致系统死机。