Skip to content
OpenAdvisories
High · 7.1 CVE-2022-49340 EUVD-2022-54888GHSA-4qqr-2jj8-h8q8

ip_gre: test csum_start instead of transport header

Published Feb 26, 2025 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.4 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-nvidia Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.5 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

ip_gre: test csum_start instead of transport header

GRE with TUNNEL_CSUM will apply local checksum offload on
CHECKSUM_PARTIAL packets.

ipgre_xmit must validate csum_start after an optional skb_pull,
else lco_csum may trigger an overflow. The original check was

if (csum && skb_checksum_start(skb) < skb->data)
return -EINVAL;

This had false positives when skb_checksum_start is undefined:
when ip_summed is not CHECKSUM_PARTIAL. A discussed refinement
was straightforward

if (csum && skb->ip_summed == CHECKSUM_PARTIAL &&
skb_checksum_start(skb) < skb->data)
return -EINVAL;

But was eventually revised more thoroughly:
- restrict the check to the only branch where needed, in an
uncommon GRE path that uses header_ops and calls skb_pull.
- test skb_transport_header, which is set along with csum_start
in skb_partial_csum_set in the normal header_ops datapath.

Turns out skbs can arrive in this branch without the transport
header set, e.g., through BPF redirection.

Revise the check back to check csum_start directly, and only if
CHECKSUM_PARTIAL. Do leave the check in the updated location.
Check field regardless of whether TUNNEL_CSUM is configured.

Affected products

VendorProductAffectedFixed
Linux Linux 4.19.207 – < 4.19.247, 5.4.148 – < 5.4.198, 5.10.68 – < 5.10.122, 5.14.7 – < 5.15, 5.15 4.19.247

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 5.18.5-1 —
Debian 13 linux 5.18.5-1 —
Debian 12 linux 5.18.5-1 —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux +1 5.15.0-48.54 —
Ubuntu 22.04 LTS linux-aws 5.15.0-1020.24 —
Ubuntu 22.04 LTS linux-azure 5.15.0-1020.25 —
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1024.30.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1018.24 —
Ubuntu 22.04 LTS linux-gke 5.15.0-1016.19 —
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1003.5 —
Ubuntu 22.04 LTS linux-ibm +1 5.15.0-1015.17 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1016.21 —
Ubuntu 22.04 LTS linux-kvm 5.15.0-1018.22 —
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1007.7 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1018.23 —
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 20.04 LTS linux 5.4.0-126.142 —
Ubuntu 20.04 LTS linux-aws 5.4.0-1085.92 —
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1020.24~20.04.1 —
Ubuntu 20.04 LTS linux-azure 5.4.0-1091.96 —
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1020.25~20.04.1 —
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1046.51 —
Ubuntu 20.04 LTS linux-gcp 5.4.0-1089.97 —
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1018.24~20.04.1 —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-48.54~20.04.1 —
Ubuntu 20.04 LTS linux-ibm 5.4.0-1033.37 —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1016.21~20.04.1 —
Ubuntu 20.04 LTS linux-iot 5.4.0-1004.6 —
Ubuntu 20.04 LTS linux-kvm 5.4.0-1075.80 —
Ubuntu 20.04 LTS linux-oracle 5.4.0-1083.91 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1018.23~20.04.1 —
Ubuntu 20.04 LTS linux-raspi 5.4.0-1070.80 —
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1019.22~20.04.1 —
Ubuntu 18.04 LTS linux 4.15.0-192.203 —
Ubuntu 18.04 LTS linux-aws 4.15.0-1140.151 —
Ubuntu 18.04 LTS linux-aws-5.4 5.4.0-1085.92~18.04.1 —
Ubuntu 18.04 LTS linux-azure-4.15 4.15.0-1150.165 —
Ubuntu 18.04 LTS linux-azure-5.4 5.4.0-1091.96~18.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 18.04 LTS linux-gcp-4.15 4.15.0-1135.151 —
Ubuntu 18.04 LTS linux-gcp-5.4 5.4.0-1089.97~18.04.1 —
Ubuntu 18.04 LTS linux-hwe-5.4 5.4.0-126.142~18.04.1 —
Ubuntu 18.04 LTS linux-ibm-5.4 5.4.0-1033.37~18.04.1 —
Ubuntu 18.04 LTS linux-kvm 4.15.0-1126.131 —
Ubuntu 18.04 LTS linux-oracle 4.15.0-1105.116 —
Ubuntu 18.04 LTS linux-oracle-5.4 5.4.0-1083.91~18.04.1 —
Ubuntu 18.04 LTS linux-raspi-5.4 5.4.0-1070.80~18.04.1 —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1021.21 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1085.92+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1091.96+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1061.69 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1089.97+fips1 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-aws-fips 4.15.0-2079.84 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-azure-fips 4.15.0-2060.66 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips 4.15.0-1097.108 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-gcp-fips 4.15.0-2044.49 —
Ubuntu Pro 16.04 LTS linux-aws-hwe 4.15.0-1140.151~16.04.1 —
Ubuntu Pro 16.04 LTS linux-azure 4.15.0-1150.165~16.04.1 —
Ubuntu Pro 16.04 LTS linux-gcp 4.15.0-1135.151~16.04.2 —
Ubuntu Pro 16.04 LTS linux-hwe 4.15.0-192.203~16.04.1 —
Ubuntu Pro 16.04 LTS linux-oracle 4.15.0-1105.116~16.04.1 —
Ubuntu Pro 14.04 LTS linux-azure 4.15.0-1150.165~14.04.1 —
ReleasePackageFixed inAdvisory
RHEL 9 perf +29 5.14.0-162.6.1.el9_1 RHSA-2022:8267

Advisories 1

References