CVE-2026-23377Linux内核ice驱动程序在处理XDP(eXpress Data Path)数据包时存在逻辑缺陷。由于错误地将DMA写入长度而非缓冲区实际大小赋值给XDP RxQ的frag_size字段,导致tailroom计算出现负值。本地低权限用户可利用此漏洞触发内核崩溃,造成系统拒绝服务。
该漏洞位于Linux内核的Intel ice驱动程序中。驱动在配置XDP接收队列时,使用了DMA写入长度来设置`xdp_rxq_info->frag_size`,然而内核函数`bpf_xdp_frags_increase_tail()`期望该字段代表整个缓冲区的大小(`xdp.frame_sz`)。这种大小假设的不一致导致在计算尾部空间时出现负值。利用场景涉及使用`xskxceiver`工具进行`XDP_ADJUST_TAIL_GROW_MULTI_BUFF`测试,通过将数据包大小设置为6912字节,并将调整偏移量设置为极大值(如`XSK_UMEM__MAX_FRAME_SIZE * 100`),可触发内核panic。尽管在零拷贝模式下由于特定配置可能不会直接观察到panic,但缓冲区尾部增长操作会异常失败,影响网络功能稳定性。