CVE-2026-43031Linux内核中的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边界。利用此漏洞需要攻击者能够发送特制的大数据包流量,触发特定的时序条件。