JohannesLks/CVE-2026-23398
GitHub: JohannesLks/CVE-2026-23398
针对Linux内核icmp_tag_validation()函数的空指针解引用漏洞的概念验证工具,可发送特制ICMP数据包导致内核崩溃。
Stars: 0 | Forks: 0
# CVE-2026-23398
Linux Kernel `icmp_tag_validation()` 空指针解引用(远程拒绝服务)
## 描述
`net/ipv4/icmp.c` 中的 `icmp_tag_validation()` 函数在解引用 `inet_protos[proto]` 时未进行 NULL 检查。远程攻击者可以发送一个精心构造的带有未注册内部协议号的 ICMP 片段必需(Fragmentation Needed)数据包,从而在内核 softirq 上下文中导致内核崩溃。
受影响版本:Linux kernel 614aefe56af8(主线) / d938dd5a0ad7(stable 6.12)之前的版本
## 使用方法
```
sudo python3 poc.py --target # single packet, proto 253
sudo python3 poc.py --target --proto 252 # alternate unregistered proto
sudo python3 poc.py --target --count 5 # repeat
```
## 需求条件
- 与目标的网络层3邻接关系(支持伪造源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 文件了解保修和责任条款。
标签:0day挖掘, CVE-2026-23398, C语言漏洞, DoS攻击, ICMP协议, Linux内核漏洞, NULL指针解引用, Python安全工具, Scapy, 内核安全, 内核提权, 安全渗透, 漏洞 Poc, 网络协议栈漏洞, 网络攻防, 远程拒绝服务, 配置错误