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

ipv6: fix Route Information option length validation

rt6_route_rcv() validates the Route Information option (RFC 4191) length
against the prefix length, but both checks are off by one.

rinfo->length is the ND option length in units of 8 octets and it
*includes* the 8-byte option header, so an option carrying N bytes of
prefix has length == 1 + N/8. RFC 4191 section 2.3 requires length 3
when Prefix Length is greater than 64, and 2 or 3 when it is greater
than 0. The code accepts length >= 2 and length >= 1 respectively.

ipv6_addr_prefix() then copies prefix_len/8 bytes out of rinfo->prefix,
so a Router Advertisement with (prefix_len=128, length=2) or
(prefix_len=64, length=1) makes the kernel read up to 8 bytes past the
end of the option. Those bytes end up in the prefix of the route that
gets installed, so they are visible to userspace:

# RA with a Route Information option (prefix_len=128, length=2)
# followed by a source link-layer address option, 01 01 de ad be ef ca fe
$ ip -6 route show
2001:db8:dead:beef:101:dead:beef:cafe via fe80::1234 dev veth0 proto ra
^^^^^^^^^^^^^^^^^^ the next option, read out of bounds

When the Route Information option is the last one in the packet, those
eight bytes come from the skb tail room instead.

Reject the option lengths RFC 4191 does not allow.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel's IPv6 routing code rt6_route_rcv() incorrectly validates the length of the Route Information option in a Router Advertisement. The validation accepts lengths that are one unit longer than the RFC allows, so when a sender advertises a 128‑bit prefix with a length field of 2 (or a 64‑bit prefix with length 1) the kernel copies eight bytes beyond the supplied data. Those out‑of‑bounds bytes become part of the prefix in the route entry and are subsequently exposed to userspace tools such as ip‑6‑route. This results in an information‑disclosure vulnerability that can leak arbitrary kernel memory to services that read the routing table.

Affected Systems

All Linux kernels prior to the commit that fixes the length check are vulnerable. The advisory does not list specific release numbers; therefore any system running a kernel that does not yet contain this patch should be considered affected. The fix is referenced in the provided commit URLs, so upgrading to the latest stable kernel series that incorporates those changes removes the issue.

Risk and Exploitability

The vulnerability does not allow direct code execution; it only leaks kernel data. An attacker must be able to inject a spoofed Router Advertisement message on an interface that accepts RA traffic, which requires access to the same local network or control of routing infrastructure. The attack vector is therefore local‑network or controlled‑routing. No public exploits are known, the EPSS score is not available, and the issue is not listed in CISA's KEV catalog. Despite the lower likelihood of exploitation, the potential impact on confidentiality is high because kernel memory can contain sensitive data.

Generated by OpenCVE AI on August 22, 2026 at 17:18 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that contains the commit correcting the Route Information option length validation
  • Disable acceptance of Router Advertisements on interfaces that should not receive them by setting net.ipv6.conf.<iface>.accept_ra=0 or globally via net.ipv6.conf.all.accept_ra=0
  • Use firewall filtering (e.g., ip6tables or nftables) to drop Route Information options that have an invalid length in RA packets

Generated by OpenCVE AI on August 22, 2026 at 17:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-20
CWE-200

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ipv6: fix Route Information option length validation rt6_route_rcv() validates the Route Information option (RFC 4191) length against the prefix length, but both checks are off by one. rinfo->length is the ND option length in units of 8 octets and it *includes* the 8-byte option header, so an option carrying N bytes of prefix has length == 1 + N/8. RFC 4191 section 2.3 requires length 3 when Prefix Length is greater than 64, and 2 or 3 when it is greater than 0. The code accepts length >= 2 and length >= 1 respectively. ipv6_addr_prefix() then copies prefix_len/8 bytes out of rinfo->prefix, so a Router Advertisement with (prefix_len=128, length=2) or (prefix_len=64, length=1) makes the kernel read up to 8 bytes past the end of the option. Those bytes end up in the prefix of the route that gets installed, so they are visible to userspace: # RA with a Route Information option (prefix_len=128, length=2) # followed by a source link-layer address option, 01 01 de ad be ef ca fe $ ip -6 route show 2001:db8:dead:beef:101:dead:beef:cafe via fe80::1234 dev veth0 proto ra ^^^^^^^^^^^^^^^^^^ the next option, read out of bounds When the Route Information option is the last one in the packet, those eight bytes come from the skb tail room instead. Reject the option lengths RFC 4191 does not allow.
Title ipv6: fix Route Information option length validation
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-22T15:31:47.859Z

Reserved: 2026-08-15T05:44:03.919Z

Link: CVE-2026-74598

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:32.170

Modified: 2026-08-22T16:16:32.170

Link: CVE-2026-74598

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T17:45:02Z

Weaknesses
  • CWE-125

    Out-of-bounds Read

  • CWE-20

    Improper Input Validation

  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor