Linux 内核 icmp_tag_validation() 空指针解引用(远程拒绝服务)
net/ipv4/icmp.c 中的 icmp_tag_validation() 在解引用 inet_protos[proto] 时未进行 NULL 检查。远程攻击者可以发送单个精心构造的 ICMP Fragmentation Needed 数据包,其中包含未注册的内部协议号,从而在 softirq 上下文中使内核崩溃。
受影响版本:提交 614aefe56af8(主线)之前的 Linux 内核 / d938dd5a0ad7(稳定版 6.12)之前的版本
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 # 重复发送
net.ipv4.ip_no_pmtu_disc = 3(非默认值;必须设置才能到达 )icmp_tag_validation()本项目基于 GNU GPLv3 许可证发布。
本项目仅用于防御性安全研究、教育和授权测试。未经所有者明确许可,请勿将此代码用于任何系统或服务。
未经授权的使用可能违反适用法律。作者不授予测试第三方系统的许可,且不对滥用行为负责。
有关保修和责任条款,请参阅 LICENSE 文件。