CVE-2026-23398

icmp: fix NULL pointer dereference in icmp_tag_validation()

State
Published
Severity
Not scored
Published
Mar 26, 2026
Updated
Oct 15, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

icmp: fix NULL pointer dereference in icmp_tag_validation()

icmp_tag_validation() unconditionally dereferences the result of rcu_dereference(inet_protos[proto]) without checking for NULL. The inet_protos[] array is sparse -- only about 15 of 256 protocol numbers have registered handlers. When ip_no_pmtu_disc is set to 3 (hardened PMTU mode) and the kernel receives an ICMP Fragmentation Needed error with a quoted inner IP header containing an unregistered protocol number, the NULL dereference causes a kernel panic in softirq context.

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>

Add a NULL check before accessing icmp_strict_tag_validation. If the protocol has no registered handler, return false since it cannot perform strict tag validation.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before 571d9d7b650f02d1e38c01128817868bceac9eddAffected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before d783fa413c702ff0f8f8bea63f862e28eeaf39e3Affected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before 1f9f2c6d4b2a613b7756fc5679c5116ba2ca0161Affected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before b61529c357f1ee4d64836eb142a542d2e7ad67ceAffected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before 9647e99d2a617c355d2b378be0ff6d0e848fd579Affected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before d938dd5a0ad780c891ea3bc94cae7405f11e618aAffected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before 1e4e2f5e48cec0cccaea9815fb9486c084ba41e2Affected
  • 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e to before 614aefe56af8e13331e50220c936fc0689cf5675Affected
LinuxLinux
  • 3.14Affected
  • before 3.14Not affected
  • 5.10.253 through 5.10.*Not affected
  • 5.15.203 through 5.15.*Not affected
  • 6.1.167 through 6.1.*Not affected
  • 6.6.130 through 6.6.*Not affected
  • 6.12.78 through 6.12.*Not affected
  • 6.18.20 through 6.18.*Not affected
  • 6.19.10 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.