Overview
About vulnerability
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.
Details
- Affected product:
- AlmaLinux 9.2 ESU , Amazon Linux 2 ELS , CentOS 6 ELS , CentOS 7 ELS , CentOS 8.4 ELS , CentOS 8.5 ELS , CentOS Stream 8 ELS , CloudLinux 7 ELS , Debian 10 ELS , Debian 11 ELS , Oracle Linux 6 ELS , Oracle Linux 7 ELS , RHEL 7 ELS , TuxCare 9.6 ESU , TuxCare 9.8 ESU , Ubuntu 16.04 ELS , Ubuntu 18.04 ELS , Ubuntu 20.04 ELS
- Affected packages:
- linux @ 5.4.0 (+19 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 10 | Released |
68 kernels
|
| AlmaLinux 8 | Released |
135 kernels
|
| AlmaLinux 9 | Released |
135 kernels
|
| AlmaLinux 9.2 ESU | Planned | — |
| Amazon Linux 2 | Released |
129 kernels
|
| CentOS 7 ELS | Planned | — |
| CentOS 8 | Released |
33 kernels
|
| CloudLinux OS 7h | Released |
119 kernels
|
| CloudLinux OS 8 | Released |
114 kernels
|
| Debian 12 | Released |
43 kernels
|
| Debian 13 | Released |
17 kernels
|
| Oracle Linux 10 | Released |
53 kernels
|
| Oracle Linux 7 UEK 6 | Released |
112 kernels
|
| Oracle Linux 8 | Released |
152 kernels
|
| Oracle Linux 8 UEK 6 | Released |
165 kernels
|
| Oracle Linux 8 UEK 7 | Released |
113 kernels
|
| Oracle Linux 9 | Released |
134 kernels
|
| Oracle Linux 9 UEK 7 | Released |
113 kernels
|
| RHEL 10 | Released |
69 kernels
|
| RHEL 6 (ELS) | In Progress | — |
| RHEL 7 | In Progress | — |
| RHEL 8 | Released |
151 kernels
|
| RHEL 9 | Released |
133 kernels
|
| Rocky Linux 10 | Released |
53 kernels
|
| Rocky Linux 8 | Released |
112 kernels
|
| Rocky Linux 9 | Released |
110 kernels
|