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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 2dc650956e4e163b879b3fb1027f9557abc5c985affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 48b0e36cf54358276ee7aa897034c973097d2bc9affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 1b7e066eabcc7d6d8f476c34739b45932f2f4c31affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < f00df8500e5a36ba70d336fd34bd2152ea074e5faffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 1516e31ac458a738be485620579d8f7fb2700fcbaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 6733ae71268a27d598cfb3f3339a3c950b9b656daffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 0bf11081ad3753938a2b48723ce6298dbac743a1affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 46640c814f25f096b0b0045ca50e1b7030cd8a30affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 7bad4bda74dc4713f398d3b7624ff05478e3a568affected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.269 to ≤ 5.10.*unaffected5.15.220 to ≤ 5.15.*unaffected6.1.187 to ≤ 6.1.*unaffected6.6.156 to ≤ 6.6.*unaffected6.12.108 to ≤ 6.12.*unaffected6.18.49 to ≤ 6.18.*unaffected7.1.13 to ≤ 7.1.*unaffected7.2.3 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/2dc650956e4e163b879b3fb1027f9557abc5c985 ↗
- https://git.kernel.org/stable/c/48b0e36cf54358276ee7aa897034c973097d2bc9 ↗
- https://git.kernel.org/stable/c/1b7e066eabcc7d6d8f476c34739b45932f2f4c31 ↗
- https://git.kernel.org/stable/c/f00df8500e5a36ba70d336fd34bd2152ea074e5f ↗
- https://git.kernel.org/stable/c/1516e31ac458a738be485620579d8f7fb2700fcb ↗
- https://git.kernel.org/stable/c/6733ae71268a27d598cfb3f3339a3c950b9b656d ↗
- https://git.kernel.org/stable/c/0bf11081ad3753938a2b48723ce6298dbac743a1 ↗
- https://git.kernel.org/stable/c/46640c814f25f096b0b0045ca50e1b7030cd8a30 ↗
- https://git.kernel.org/stable/c/7bad4bda74dc4713f398d3b7624ff05478e3a568 ↗