CVE-2026-23398
icmp:修复 icmp_tag_validation() 中的空指针解引用
- 已发布
- 2026年3月26日
- 已更新
- 2026年9月8日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年8月25日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H低 · 未来 30 天
- 百分位
- 2.5%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,已解决以下漏洞:icmp:修复 icmp_tag_validation() 中的 NULL 指针解引用问题 icmp_tag_validation() 无条件解引用 rcu_dereference(inet_protos[proto]) 的结果,而未检查是否为 NULL。inet_protos[] 数组是稀疏的——256 个协议号中只有约 15 个注册了处理程序。当 ip_no_pmtu_disc 设置为 3(强化 PMTU 模式)且内核收到一个 ICMP Fragmentation Needed 错误,其中引用的内部 IP 头包含未注册的协议号时,NULL 解引用会在 softirq 上下文中导致内核崩溃。 Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] RIP: 0010:icmp_unreach (net/ipv4/icmp.c:1085 net/ipv4/icmp.c:1143) Call Trace: <IRQ> icmp_rcv (net/ipv4/icmp.c:1527) ip_protocol_deliver_rcu (net/ipv4/ip_input.c:207) ip_local_deliver_finish (net/ipv4/ip_input.c:242) ip_local_deliver (net/ipv4/ip_input.c:262) ip_rcv (net/ipv4/ip_input.c:573) __netif_receive_skb_one_core (net/core/dev.c:6164) process_backlog (net/core/dev.c:6628) handle_softirqs (kernel/softirq.c:561) </IRQ> 在访问 icmp_strict_tag_validation 之前添加 NULL 检查。如果该协议没有注册处理程序,则返回 false,因为它无法执行严格的标签验证。
来源
3针对 Linux 内核中 `icmp_tag_validation()` 函数空指针解引用的概念验证漏洞利用,可通过构造特制的 ICMP 数据包实现远程拒绝服务攻击。
CVE-2026-23398 的可复现实验室,这是 Linux 内核中 icmp_tag_validation() 的一个空指针解引用漏洞,由 ICMP 分片需要(Fragmentation Needed)数据包触发,可导致拒绝服务。包含 QEMU 虚拟机搭建、Scapy PoC,以及用于测试已修补和易受攻击内核的脚本。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。