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

CVE-2026-43031 Linux内核Xilinx AxiNet BQL记账漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSXilinxDriverBQLNetworking

漏洞概述

Linux内核中的Xilinx AxiNet网卡驱动存在一个BQL(字节队列限制)记账逻辑漏洞。当发送的数据包跨越多个缓冲区描述符(BD)时,如果这些BD在不同的NAPI轮询周期内完成传输,驱动程序会丢失部分字节的统计。这导致BQL误认为有大量字节永久处于传输中,最终阻塞发送队列,导致网卡无法继续发送数据,造成拒绝服务。

技术细节

该漏洞源于驱动程序在处理多BD发送链时的累加器重置逻辑。函数`axienet_free_tx_chain`在每次NAPI轮询开始时会重置字节累加器。如果一个数据包由多个BD组成,且前几个BD在本次轮询中完成,剩下的BD在下次轮询中完成,那么前几个BD的字节数会被累加但随后因为重置而丢失,或者更准确地说,累加逻辑无法跨轮询保持总和。修复方案是仅在数据包的最后一个BD完成时,使用`skb->len`来统计整个数据包的长度,而不是累加每个BD的长度。这确保了统计与`netdev_sent_queue()`的扣除逻辑一致,并自然跨越NAPI边界。利用此漏洞需要攻击者能够发送特制的大数据包流量,触发特定的时序条件。

攻击链分析

STEP 1
步骤1
攻击者向使用Linux内核且搭载了Xilinx AxiNet网卡的设备发送网络数据包。
STEP 2
步骤2
攻击者构造并发送跨越多个缓冲区描述符(BD)的大数据包(例如使用Jumbo帧)。
STEP 3
步骤3
数据包的传输过程跨越了NAPI(New API)驱动的两次或多次轮询周期。
STEP 4
步骤4
驱动程序在`axienet_free_tx_chain`中错误地计算了BQL字节数,导致部分字节未被回收。
STEP 5
步骤5
BQL认为发送队列已满,阻止新数据包入队,导致网络接口发送功能瘫痪(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC Concept for CVE-2026-43031 * This vulnerability is a logic bug in the Linux kernel driver. * It requires specific hardware (Xilinx Axi Ethernet) to trigger. * * Triggering condition: * 1. Generate network traffic that requires multiple Buffer Descriptors (BDs). * 2. Ensure the completion of these BDs spans across different NAPI poll cycles. * 3. This causes the BQL (Byte Queue Limits) accounting to underflow/stall. * * The following is a pseudo-code representation of the traffic generation logic. */ void generate_trigger_traffic() { // Configure interface for Jumbo Frames or Scatter-Gather I/O // Send packets larger than the standard BD size // Rate limit to interact with NAPI polling timing while (1) { send_large_packet(target_ip, packet_size > BD_MAX_SIZE); // Introduce slight delay to allow NAPI interaction usleep(100); } // Result: The TX queue on the target device will eventually stop sending packets. }

影响范围

Linux Kernel (修复前的特定版本, 请参考Git提交记录)

防御指南

临时缓解措施
在未升级内核前,可以通过调整网络接口的MTU大小,使其小于单个缓冲区描述符的大小,从而避免多BD传输,或者暂时禁用网卡的BQL功能以防止队列停滞。

参考链接

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