IPBUF安全漏洞报告
English
CVE-2026-43194 CVSS 7.5 高危

CVE-2026-43194 Linux内核GSO帧传输错误致连接死锁漏洞

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

漏洞信息

漏洞编号
CVE-2026-43194
漏洞类型
逻辑错误
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelDoSNetworkingGSOTCP

漏洞概述

Linux内核网络子系统中存在一个漏洞,涉及通用分段卸载(GSO)帧的传输错误处理。在特定条件下,当使用veth设备模拟GRO且没有Qdisc时,如果GSO超级帧中的单个片段传输失败,TCP层会错误地认为整个帧未发送。这导致发送端的snd_nxt指针停滞,而接收端却确认了更多的数据,最终引发TCP连接死锁。攻击者可利用此漏洞导致目标系统网络连接中断,造成拒绝服务。

技术细节

该漏洞源于Linux内核TCP协议栈对GSO(通用分段卸载)帧传输返回值的处理逻辑缺陷。在特定网络配置(如无Qdisc的veth设备)下,当发送GSO超级帧时,如果其中某一个分段发生丢包(例如veth返回错误),tcp_write_xmit()函数会错误地将整个GSO帧视为发送失败。这种机制导致发送端的重传队列与发送指针状态严重不一致:发送端认为数据未发送,将数据保留在重传队列中并停止推进snd_nxt;然而,接收端实际上可能已经成功接收并确认了该GSO帧中的其他分段。当接收端发送ACK确认这些高序列号数据时,发送端因无法找到对应的发送记录而拒绝该ACK(判定为TCP_ACK_UNSENT_DATA)。结果导致TCP连接陷入死锁状态,无法传输新数据,最终造成拒绝服务。

攻击链分析

STEP 1
环境准备
攻击者或管理员配置使用veth设备对,并附加一个简单的XDP程序(如XDP_PASS)以强制关闭TSO并开启NAPI。
STEP 2
触发条件
在没有Qdisc(或使用noqueue)的路径上,系统开始发送TCP GSO(通用分段卸载)超级帧。
STEP 3
丢包事件
veth驱动在发送GSO帧时,其中一个分段发生丢包并返回错误。
STEP 4
逻辑错误
TCP层错误地认为整个GSO帧发送失败,不推进snd_nxt,但接收端实际上已接收并ACK了后续数据。
STEP 5
拒绝服务
发送端拒绝接收端的ACK,导致TCP连接进入死锁状态,无法传输数据,导致服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # This script attempts to reproduce the environment for CVE-2026-43194 # It creates a veth pair, attaches an XDP program to force TSO off/NAPI on, # and generates traffic to potentially trigger the race condition/loss. if [ "$EUID" -ne 0 ]; then echo "Please run as root" exit fi # Load dependencies modprobe veth # Setup veth pair ip link add veth0 type veth peer name veth1 ip link set veth0 up ip link set veth1 up ip addr add 192.168.100.1/24 dev veth0 ip addr add 192.168.100.2/24 dev veth1 # Compile a simple XDP program that returns XDP_PASS cat > /tmp/xdp_pass.c <<EOF #include <linux/bpf.h> int xdp_pass_func(struct xdp_md *ctx) { return XDP_PASS; } char _license[] SEC("license") = "GPL"; EOF clang -O2 -g -target bpf -c /tmp/xdp_pass.c -o /tmp/xdp_pass.o # Attach XDP program to veth (forces NAPI/TSO off behavior) ip link set dev veth0 xdpgeneric obj /tmp/xdp_pass.o sec .text # Disable Qdisc to match the vulnerable condition described ip link set dev veth0 qdisc noqueue ip link set dev veth1 qdisc noqueue echo "Environment set up. Starting traffic..." # Generate traffic (e.g., using netperf or iperf, here simulated with ping/hping3) # Real exploitation requires specific packet loss timing. # This setup demonstrates the prerequisites. # Cleanup function cleanup() { ip link del veth0 rm -f /tmp/xdp_pass.c /tmp/xdp_pass.o } trap cleanup EXIT sleep 10

影响范围

Linux Kernel (多版本)
Linux Kernel < Commit 0c9de092ef8c50a7ee9612811566f0aa81d8d7b6

防御指南

临时缓解措施
在受影响的系统上,避免在veth设备上禁用Qdisc,或者确保网络配置不会导致GSO分段在设备层被丢弃。

参考链接

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