HIGH Introduced in 2.6.12
ipvs NatICMP OOB
CVE-2026-74724
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI7.7HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: ipvs: avoid out-of-bounds write in ip_vs_nat_icmp Sashiko warns that local attacker can modify the packet while it is processed by IPVS. Some places read the IP ihl field multiple times which can cause out-of-bounds access. One such place is ip_vs_nat_icmp where we can write after the validated area. Fix it by providing ciph argument just like it is done for IPv6 and use ciph->len as offset to the embedded transport header. Modify some IPv4 header checks by reading the ihl field only once.
02KernelScan AI Analysis
Risk summary
A local attacker who can send crafted ICMP packets through an IPVS-configured system can trigger an out-of-bounds write in kernel memory, potentially leading to privilege escalation or system crash. IPVS must be enabled and configured (requiring CAP_NET_ADMIN) for the vulnerable code path to be reachable. Systems running IPVS load balancing in multi-tenant or container environments are at highest risk.
Vulnerability analysis
When IPVS processes ICMP error packets containing an embedded IP header, the code reads the IP header length field directly from the packet buffer at multiple points without caching the validated value. The initial validation only checks the minimum length but not the upper bound, so a crafted ICMP packet with an inflated header-length value causes the code to compute an offset beyond the actual packet data and write port-number modifications to out-of-bounds kernel memory. The fix passes a pre-validated header structure through the call chain so the offset to the embedded transport header is computed once from validated data and reused, eliminating both the repeated unvalidated reads and the missing upper-bound check. Exploitation requires IPVS to be configured on the target system and a local attacker capable of sending crafted ICMP packets through the IPVS processing path.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.1 | 2.6.12 | 6.1.183 | 3b8f79af0e98 |
| 6.12 | 2.6.12 | 6.12.104 | be65fa324640 |
| 6.18 | 2.6.12 | 6.18.45 | a69a4b3fff58 |
| 6.6 | 2.6.12 | 6.6.152 | 3c779b258c9c |
| 7.1 | 2.6.12 | 7.1.9 | 243d0187ec4c |
| mainline | 2.6.12 | 7.2 | 646922a03794 |
| cip/6.1 | 2.6.12 | 6.1.187-cip60 | 3b8f79af0e98 |
| cip/6.1-rt | 2.6.12 | 6.1.189-cip61-rt32 | 3b8f79af0e98 |
| cip/6.12 | 2.6.12 | 6.12.104-cip30 | be65fa324640 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.104-cip30 |
| cip/6.1 | Fixed in 6.1.187-cip60 |
| cip/6.1-rt | Fixed in 6.1.189-cip61-rt32 |
| cip/5.10 | Affected — no CIP fix yet (latest 5.10.271-cip78) |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |
| cip/4.19 | Affected — no CIP fix yet (latest 4.19.325-cip136) |
| cip/4.19-rt | Affected — no CIP fix yet (latest 4.19.325-cip136-rt50) |
| cip/4.4 | Affected — no CIP fix yet (latest 4.4.302-cip115) |
| cip/4.4-rt | Affected — no CIP fix yet (latest 4.4.302-cip115-rt63) |