CVE-2026-43465Linux内核中的mlx5e以太网驱动存在一个严重的安全漏洞。该问题涉及XDP(eXpress Data Path)多缓冲区处理机制,特别是在跨步接收队列(Striding RQ)场景下。当XDP程序调用`bpf_xdp_pull_data()`修改缓冲区布局时,驱动未能正确计算被丢弃的页面片段引用计数。这会导致页面引用计数变为负数,进而引发内核警告或系统崩溃。
该漏洞位于Linux内核网络子系统的mlx5e驱动中,主要影响`mlx5e_skb_from_cqe_mpwrq_nonlinear`函数。在处理跨步RQ的非线性XDP数据包时,驱动假设XDP缓冲区布局不变。然而,当XDP程序调用`bpf_xdp_pull_data()`将头部移至线性部分时,若尾部无有效载荷则会被丢弃,此时`page_pool`的引用计数递减。但驱动端的内部片段计数器未更新,仍认为需要释放原始数量的片段。最终,驱动尝试释放的片段数超过实际引用计数,导致负引用计数错误。这会触发`mlx5e_page_release_fragmented`中的WARNING,导致内核恐慌、内存破坏或拒绝服务。该漏洞影响XDP_TX、XDP_REDIRECT及XDP_PASS路径。