Cloudanix VulnDB

CVE-2026-23398

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

Mar 26, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A bug in the Linux network code can make the whole system crash when it receives a certain kind of error message about network packet sizes, forcing restarts and interrupting work.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Unconditional dereference of a NULL result from rcu_dereference(inet_protos[proto]) in icmp_tag_validation() when an ICMP Fragmentation Needed packet quotes an inner IP header using an unregistered protocol number and ip_no_pmtu_disc=3, producing a kernel panic in softirq context.

Why it matters to the business

Unexpected kernel crashes on Linux systems can interrupt services, cause data loss in memory, require reboots, and create unplanned downtime; the issue is reachable under common hardened PMTU settings but carries low remote exploit probability.

How an attack unfolds

An attacker with local access crafts an ICMP Fragmentation Needed packet whose quoted inner IP header specifies an unregistered protocol number; when the kernel is in hardened PMTU mode it reaches icmp_tag_validation() which dereferences the NULL handler entry and panics.

How to fix it

Apply the upstream fix that adds a NULL check before dereferencing the protocol handler; rebuild and deploy the patched kernel; until a fixed kernel is available, avoid setting ip_no_pmtu_disc=3 or restrict local users who can inject ICMP packets.

How to confirm the fix worked

Confirm the patched kernel source contains the added NULL check in icmp_tag_validation(); test by sending an ICMP Fragmentation Needed packet with an unregistered inner protocol while ip_no_pmtu_disc=3 and verify the system no longer panics.

Typical attack path

  1. Obtain local execution or packet injection capability on the target host
  2. Set ip_no_pmtu_disc=3 or confirm the setting is already active
  3. Send a crafted ICMP Fragmentation Needed message referencing an unregistered IP protocol in the inner header
  4. Trigger the NULL dereference path inside icmp_unreach during softirq processing

How to detect it

Search kernel logs and dmesg for general protection faults or KASAN null-ptr-deref reports with stack traces containing icmp_unreach, icmp_rcv, and ip_local_deliver; correlate with receipt of ICMP type 3 code 4 packets shortly before the crash.

What your security team should do

  • Prioritize patching the Linux kernel once a fixed release is available
  • Monitor kernel oops and panic logs for icmp_unreach NULL dereference signatures
  • Temporarily avoid hardened PMTU mode (ip_no_pmtu_disc=3) on high-availability systems
  • Restrict local user capabilities that allow raw ICMP packet construction

The record

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.

Affected packages

Ecosystem Package Introduced Fixed
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-azure 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.27.1.160000.2.8
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.28.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.28.1

Related vulnerabilities