CVE-2026-23011CVE-2026-23011是Linux内核中的一个中等严重性拒绝服务漏洞。该漏洞存在于IPv4 GRE隧道功能中,具体在ipgre_header()函数中。攻击者可以通过操作team或bonding驱动动态更改网络设备的needed_headroom和hard_header_len参数,导致mld_newpack()分配的skb缓冲区预留空间不足。当ipgre设备被动态附加时,ipgre_header()函数在访问该缓冲区时会触发内核崩溃,表现为skb_under_panic错误和内核BUG检查失败。此漏洞需要本地低权限访问即可触发,无需用户交互,可导致系统可用性受损。
该漏洞的技术根源在于ipgre_header()函数缺乏对skb缓冲区空间的充分验证。具体攻击过程如下:1) team或bonding驱动通过动态修改dev->needed_headroom和dev->hard_header_len参数,改变网络设备的头部空间需求;2) mld_newpack()函数分配的skb缓冲区未预留足够的headroom空间;3) 在mld_sendpack()执行期间,攻击者动态附加ipgre设备;4) ipgre_header()调用dev_hard_header时,由于skb预留空间不足,执行skb_push操作会导致缓冲区下溢;5) 内核在net/core/skbuff.c中检测到异常并触发BUG_ON检查,导致系统崩溃。漏洞类似于IPv6 GRE隧道(ip6gre_header)的修复方案(commit db5b4e39c4e6),需要使ipgre_header()函数对边界条件更加健壮。攻击者利用此漏洞可实现本地拒绝服务攻击。