CVE-2026-31630Linux内核AF_RXRPC模块的procfs接口存在缓冲区溢出漏洞。该模块在处理套接字地址时,使用了固定大小的50字节堆栈缓冲区来存储格式化后的IPv6地址。然而,对于包含ISATAP或v4mapped的特定IPv6地址,其格式化后的字符串长度可能超过50字节,导致缓冲区溢出。攻击者可利用此漏洞造成内核崩溃或潜在权限提升。
该漏洞位于Linux内核的 net/rxrpc/proc.c 文件中。AF_RXRPC的procfs辅助函数负责将本地和远程套接字地址格式化为字符串。代码使用了 char[50] 大小的栈缓冲区,并通过 %pISpc 格式说明符进行格式化。然而,Linux内核的格式化机制在处理特定类型的IPv6地址(如ISATAP地址或IPv4映射地址)时,会生成包含点分四进制尾部的长字符串。具体而言,[ffff:ffff:ffff:ffff:0:5efe:255.255.255.255]:65535 这样的地址包含50个可见字符,加上结束符 \0 共需51字节。现有的50字节缓冲区无法容纳此数据,导致发生栈缓冲区溢出。虽然攻击复杂度较低且无需用户交互,但由于是本地漏洞,攻击者需要低权限账户即可触发该溢出,可能破坏内核内存完整性,导致系统崩溃或在特定条件下实现本地权限提升。