CVE-2026-43466Linux内核的mlx5e驱动程序在处理TX错误CQE恢复流程时存在漏洞。函数`mlx5e_reset_txqsq_cc_pc`错误地仅重置了DMA FIFO的消费者计数器`dma_fifo_cc`为0,而未重置生产者计数器`dma_fifo_pc`。这导致DMA FIFO的生产者和消费者指针去同步,恢复后系统会取消映射恢复前的陈旧DMA地址,从而触发内核WARNING及潜在的拒绝服务。
该漏洞位于Linux内核网络驱动程序(mlx5e)中。当网卡发生传输错误并产生错误CQE时,驱动程序会调用`mlx5e_reset_txqsq_cc_pc`进行恢复。该函数将`dma_fifo_cc`置0,但保留了`dma_fifo_pc`。由于DMA FIFO是软件结构,且WQEs已被刷新,两者本应相等。这种不同步导致在后续处理中,消费者从0开始读取,而生产者继续在旧位置写入,导致`iommu_dma_unmap_page`试图取消映射已失效的DMA地址。这会导致调用栈中的`WARN_ON`被触发,影响系统稳定性。