CVE-2026-53235

net: add pskb_may_pull() to skb_gro_receive_list()

HIGH
7.5
CVSS Score
Published: June 25, 2026 at 08:39 AM UTC
Updated: August 5, 2026 at 01:24 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.5
Exploit prediction
EPSS 0.4%

Description

In the Linux kernel, the following vulnerability has been resolved: net: add pskb_may_pull() to skb_gro_receive_list() skb_gro_receive_list() calls skb_pull(skb, skb_gro_offset(skb)) without first ensuring the data is in the linear area via pskb_may_pull(). When the skb arrives via napi_gro_frags(), skb_headlen can be 0 (all data in page fragments) while skb_gro_offset is non-zero (after IP+TCP header parsing). The skb_pull() then decrements skb->len by skb_gro_offset but skb->data_len stays unchanged, hitting BUG_ON(skb->len < skb->data_len) in __skb_pull(). The UDP fraglist GRO path already contains this guard at udp_offload.c:749. Adding it to skb_gro_receive_list() itself provides centralized protection for all callers (TCP, UDP, and any future protocols), and ensures the precondition of skb_pull() is satisfied before it is called. On pskb_may_pull() failure, set NAPI_GRO_CB(skb)->flush = 1 so the skb is not held as a new GRO head and is instead delivered through the normal receive path, matching the UDP handling.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.10 ≤ v < 6.12.946.10 ≤ v < 6.18.366.10 ≤ v < 7.0.136.10 ≤ v < 7.16.13 ≤ v < 6.18.366.19 ≤ v < 7.0.137.1 rc17.1 rc27.1 rc37.1 rc47.1 rc57.1 rc67.1 rc78d95dc474f85481652a0e422d2f1f079de81f63c
Vendor states this is fixed in 0cde3a004119db637b401c54e77536e4145fc0b4 (fixed)
Vendor states this is fixed in 848571dcbbbea7ba44dd4f7ebe1fbb274afe08ac (fixed)
Vendor states this is fixed in 9e636c995b7beeb74ea882968248752821c244c4 (fixed)
Vendor states this is fixed in f2bb3434544454099a5b6dec213567267b05d79d (fixed)
Vendor states this is fixed in 6.10 (unaffected)
Vendor states this is fixed in 6.12.94 (unaffected)
Vendor states this is fixed in 6.18.36 (unaffected)
Vendor states this is fixed in 7.0.13 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

7.5HIGHLinux
Vector?

Quick Info

StatusANALYZED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card