CVE-2026-80844

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 2dc650956e4e163b879b3fb1027f9557abc5c985affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 48b0e36cf54358276ee7aa897034c973097d2bc9affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 1b7e066eabcc7d6d8f476c34739b45932f2f4c31affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f00df8500e5a36ba70d336fd34bd2152ea074e5faffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 1516e31ac458a738be485620579d8f7fb2700fcbaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 6733ae71268a27d598cfb3f3339a3c950b9b656daffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0bf11081ad3753938a2b48723ce6298dbac743a1affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 46640c814f25f096b0b0045ca50e1b7030cd8a30affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7bad4bda74dc4713f398d3b7624ff05478e3a568affected
LinuxLinux2.6.12affected
LinuxLinux0 < 2.6.12unaffected
LinuxLinux5.10.269 <= 5.10.*unaffected
LinuxLinux5.15.220 <= 5.15.*unaffected
LinuxLinux6.1.187 <= 6.1.*unaffected
LinuxLinux6.6.156 <= 6.6.*unaffected
LinuxLinux6.12.108 <= 6.12.*unaffected
LinuxLinux6.18.49 <= 6.18.*unaffected
LinuxLinux7.1.13 <= 7.1.*unaffected
LinuxLinux7.2.3 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References