Description
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.
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel’s IPsec AH6 handling, the routine ipv6_rearrange_rthdr() assumes that the segments_left value of a routing header never exceeds the number of addresses indicated by the hdrlen field. When a raw IPv6 packet with the HDRINCL extension is processed and carries a large segments_left (e.g., 255) while hdrlen refers to only one address, the routine calculates and moves the address pointer 4,064 bytes backwards and passes that length to memmove(). This produces an out‑of‑bounds memory write that corrupts kernel memory. As the code runs with full kernel privileges, a successful exploitation can allow an attacker to execute arbitrary code or crash the system, compromising integrity and availability.

Affected Systems

All Linux systems that ship an unpatched kernel containing the faulty AH6 logic are affected. The vulnerability resides in the core xfrm subsystem; any distribution that includes AH6 support—either compiled into the kernel or built as a module—can be compromised. Administrators should consider any kernel version that has not incorporated the commit that adds the segments_left invariant check as vulnerable.

Risk and Exploitability

While no CVSS or EPSS score is supplied, the nature of the bug suggests a severe impact. Based on the description the likely attack vector is remote network traffic: an attacker who can inject a specially crafted raw IPv6 packet with a mismatched segments_left value could trigger the out‑of‑bounds write. The kernel’s privileged context means that successful exploitation could result in arbitrary code execution at ring‑0. The absence of a KEV listing does not reduce the threat, as the issue remains exploitable whenever the vulnerable node can receive such packets.

Generated by OpenCVE AI on September 4, 2026 at 19:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patch validating the routing‑header segments_left field; the referenced commit should be applied.
  • If a kernel upgrade is not immediately possible, block or drop raw IPv6 HDRINCL packets at the network perimeter or within the host firewall using iptables, nftables, or equivalent tools.
  • If IPsec AH is not required, disable or remove the AH6 module from the kernel configuration to eliminate the attack surface.

Generated by OpenCVE AI on September 4, 2026 at 19:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-20

Fri, 04 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
Description 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.
Title xfrm: ah6: validate routing header segments_left
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-09-04T15:54:54.295Z

Reserved: 2026-08-26T14:34:25.796Z

Link: CVE-2026-80844

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:13.023

Modified: 2026-09-04T16:18:13.023

Link: CVE-2026-80844

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T19:30:04Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-20

    Improper Input Validation