CVE-2026-23398Linux内核网络子系统存在空指针解引用漏洞。由于`icmp_tag_validation()`函数未对`inet_protos[proto]`进行NULL检查,当系统处于强化PMTU模式(`ip_no_pmtu_disc=3`)并接收到携带未注册协议号的ICMP“分片需要”报文时,会导致内核空指针解引用,引发系统崩溃(内核恐慌),影响系统可用性。
该漏洞源于Linux内核网络协议栈中ICMP模块的处理逻辑缺陷。具体位于`net/ipv4/icmp.c`的`icmp_tag_validation()`函数,该函数在调用`rcu_dereference(inet_protos[proto])`获取协议处理程序后,未验证返回指针的有效性即进行解引用操作。由于`inet_protos[]`数组是稀疏结构,大量协议号并未注册处理程序。漏洞利用需要特定的环境配置:首先将`ip_no_pmtu_disc`内核参数设置为3(即Hardened PMTU mode)。随后,攻击者向目标发送特制的ICMP“Fragmentation Needed”错误报文,该报文的原始IP头部载荷中需包含一个未注册的IP协议号。当内核处理此类报文时,会触发空指针解引用,导致软中断上下文中发生内核恐慌,从而使系统崩溃或重启,造成拒绝服务攻击。