## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JOHANNESLKS-CVE-2026-23398
# CVE-2026-23398
Linux 内核 `icmp_tag_validation()` 空指针解引用(远程拒绝服务)
## 描述
`net/ipv4/icmp.c` 中的 `icmp_tag_validation()` 在解引用 `inet_protos[proto]` 时未进行 NULL 检查。远程攻击者可以发送单个精心构造的 ICMP Fragmentation Needed 数据包,其中包含未注册的内部协议号,从而在 softirq 上下文中使内核崩溃。
受影响版本:提交 614aefe56af8(主线)之前的 Linux 内核 / d938dd5a0ad7(稳定版 6.12)之前的版本
## 用法
root@kitploit:~
sudo python3 poc.py --target <TARGET_IP> # 单个数据包,协议号 253
sudo python3 poc.py --target <TARGET_IP> --proto 252 # 备选未注册协议号
sudo python3 poc.py --target <TARGET_IP> --count 5 # 重复发送
## 要求
* 与目标具备三层网络连通性(支持伪造源 IP)
* 目标:`net.ipv4.ip_no_pmtu_disc = 3`(非默认值;必须设置才能到达 `icmp_tag_validation()`)
* 攻击者:root 权限、Python 3、Scapy
## 参考
* https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d938dd5a0ad780c891ea3bc94cae7405f11e618a
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=614aefe56af8
## 法律声明
本项目基于 GNU GPLv3 许可证发布。
本项目仅用于防御性安全研究、教育和授权测试。未经所有者明确许可,请勿将此代码用于任何系统或服务。
未经授权的使用可能违反适用法律。作者不授予测试第三方系统的许可,且不对滥用行为负责。
有关保修和责任条款,请参阅 LICENSE 文件。