CVE-2026-23254

Summary

In the Linux kernel, the following vulnerability has been resolved:

net: gro: fix outer network offset

The udp GRO complete stage assumes that all the packets inserted the RX have the encapsulation flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.

Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.

Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxaf276a5ac8e938c8b058e3e124073cc1e322d98b < 9d40a85138568696387ef04cd004c64612a70874affected
LinuxLinux5ef31ea5d053a8f493a772ebad3f3ce82c35d845 < b83557bc6f560433fe5d727e241069f8db5ba709affected
LinuxLinux5ef31ea5d053a8f493a772ebad3f3ce82c35d845 < 2e5edb69e5d0e23ef248c56fc977039268c77a7baffected
LinuxLinux5ef31ea5d053a8f493a772ebad3f3ce82c35d845 < 5c2c3c38be396257a6a2e55bd601a12bb9781507affected
LinuxLinuxdbd9466d323a72e22efe09151253d195d36d3bf6affected
LinuxLinux6.6.31 < 6.6.124affected
LinuxLinux6.8.10 < 6.9affected
LinuxLinux6.9affected
LinuxLinux0 < 6.9unaffected
LinuxLinux6.6.124 <= 6.6.*unaffected
LinuxLinux6.12.70 <= 6.12.*unaffected
LinuxLinux6.18.10 <= 6.18.*unaffected
LinuxLinux6.19 <= *unaffected

Weaknesses

References