CVE-2026-23300

Source
https://cve.org/CVERecord?id=CVE-2026-23300
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23300.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-23300
Downstream
Published
2026-03-25T10:26:56.138Z
Modified
2026-04-02T13:12:20.458589Z
Summary
net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop
Details

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

net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop

When a standalone IPv6 nexthop object is created with a loopback device (e.g., "ip -6 nexthop add id 100 dev lo"), fib6nhinit() misclassifies it as a reject route. This is because nexthop objects have no destination prefix (fcdst=::), causing fib6isreject() to match any loopback nexthop. The reject path skips fibnhcommoninit(), leaving nhcpcpurth_output unallocated. If an IPv4 route later references this nexthop, __mkrouteoutput() dereferences NULL nhcpcpurthoutput and panics.

Simplify the check in fib6nhinit() to only match explicit reject routes (RTFREJECT) instead of using fib6isreject(). The loopback promotion heuristic in fib6isreject() is handled separately by ip6routeinfocreate_nh(). After this change, the three cases behave as follows:

  1. Explicit reject route ("ip -6 route add unreachable 2001:db8::/64"): RTFREJECT is set, enters reject path, skips fibnhcommoninit(). No behavior change.

  2. Implicit loopback reject route ("ip -6 route add 2001:db8::/32 dev lo"): RTFREJECT is not set, takes normal path, fibnhcommoninit() is called. ip6routeinfocreatenh() still promotes it to reject afterward. nhcpcpurth_output is allocated but unused, which is harmless.

  3. Standalone nexthop object ("ip -6 nexthop add id 100 dev lo"): RTFREJECT is not set, takes normal path, fibnhcommoninit() is called. nhcpcpurth_output is properly allocated, fixing the crash when IPv4 routes reference this nexthop.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23300.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
493ced1ac47c48bb86d9d4e8e87df8592be85a0e
Fixed
b5062fc2150614c9ea8a611c2e0cb6e047ebfa3a
Fixed
b299121e7453d23faddf464087dff513a495b4fc
Fixed
f7c9f8e3607440fe39300efbaf46cf7b5eecb23f
Fixed
b3b5a037d520afe3d5276e653bc0ff516bbda34c
Fixed
8650db85b4259d2885d2a80fbc2317ce24194133
Fixed
21ec92774d1536f71bdc90b0e3d052eff99cf093

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23300.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.3.0
Fixed
6.1.167
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.130
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.77
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.17
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
6.19.7

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23300.json"