CVE Catalog

CVE-2026-80844

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel's AH6 (IPsec) subsystem, there is an out-of-bounds read vulnerability. The ipv6_rearrange_rthdr() function assumes that the segments_left field in the routing header does not exceed the number of addresses described by hdrlen. However, for raw IPv6 HDRINCL packets, a packet with hdrlen=2 (describing one address) and segments_left=255 can be sent, causing the address pointer to move 4064 bytes backwards and passing a 4064-byte length to memmove(), leading to out-of-bounds access. The fix adds validation of this invariant before modifying the header.

Risk Assessment

An attacker can send a specially crafted IPv6 packet, potentially leading to kernel memory disclosure or system crash.

Recommendation

Install the Linux kernel update containing the fix that validates segments_left in AH6. Restrict access to raw IPv6 sockets if possible.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: xfrm: ah6: validate routing header segments_left AH6 rearranges routing-header addresses before computing or verifying the ICV. ipv6_rearrange_rthdr() assumes that segments_left is not larger than the number of addresses described by the routing header's hdrlen field. That assumption does not hold for raw IPv6 HDRINCL packets. A packet with hdrlen equal to 2 describes one address, but can carry an arbitrary segments_left value. With segments_left equal to 255, the function moves its address pointer 4,064 bytes backwards and passes a 4,064-byte length to memmove(), resulting in an out-of-bounds access. Validate the invariant locally before modifying the routing header or performing any address-pointer arithmetic, and propagate malformed-header errors to the existing AH6 input and output error paths.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS