CVE-2026-43464Linux内核mlx5e驱动在处理XDP多缓冲区时存在引用计数错误。当XDP程序调用函数修改数据包布局(如收缩尾部)时,驱动未能正确追踪被丢弃的内存片段。这导致页面池引用计数异常,触发内核WARNING,进而可能引发系统崩溃或拒绝服务。
漏洞根因在于Linux内核net/mlx5e驱动对XDP多缓冲区片段的计数逻辑错误。在legacy RQ模式下,当XDP程序通过bpf_xdp_pull_data或bpf_xdp_adjust_tail修改缓冲区布局时,驱动程序未能正确统计被丢弃的页面片段。此前修复虽然解决了布局变化的问题,却忽略了片段释放时的引用计数维护。在执行XDP_TX、XDP_REDIRECT或XDP_PASS动作时,若最后一个片段因数据包收缩而被释放,驱动侧仍保留原计数,导致pp_ref_count变为负数。这一错误会在mlx5e_page_release_fragmented函数中触发内核WARNING及回溯信息,严重时可导致系统崩溃。攻击者需能向目标系统发送网络流量并触发特定的XDP处理逻辑,从而造成拒绝服务。