Skip to main content
VulnerabilityPublished Updated

CVE-2026-68136: Linux kernel · net: gro: fix double aggregation of flush-marked skbs

Affects Linux kernelSource CVE Database V5

0

Not known to be exploited · CVSS 9.8 Critical · fixed in fc0c0f7a207f0cd2d2aa725696c907f7d03af9e0 : patch Linux kernel as a priority.

Data as of 26 Oct 2026, 14:05 UTC

CVSS 3.1 base score
9.8Critical
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.5% chance of exploitation in 30 days – higher than 45% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers can reliably automate steps 1–4 of the kill chain
Technical impact
Total control over the software or total information disclosure

CISA SSVC assessment, 2026-10-16.

Patch
Available – fixed in fc0c0f7a207f0cd2d2aa725696c907f7d03af9e0, e751256486d0ded20f5a9f9863467f1dce65142f, db3e82da616f52e2b27e25e7be3fde2f2a5e54d6 +4
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 10 Aug 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596, < fc0c0f7a207f0cd2d2aa725696c907f7d03af9e0
Fixed in
  • fc0c0f7a207f0cd2d2aa725696c907f7d03af9e0
LinuxLinuxAffected
  • ≥ 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596, < e751256486d0ded20f5a9f9863467f1dce65142f
Fixed in
  • e751256486d0ded20f5a9f9863467f1dce65142f
LinuxLinuxAffected
  • ≥ 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596, < db3e82da616f52e2b27e25e7be3fde2f2a5e54d6
Fixed in
  • db3e82da616f52e2b27e25e7be3fde2f2a5e54d6
LinuxLinuxAffected
  • ≥ 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596, < d1fb23f8f794ac4683127bd49a6422bd87e0ac02
Fixed in
  • d1fb23f8f794ac4683127bd49a6422bd87e0ac02
LinuxLinuxAffected
  • ≥ 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596, < a4dfd46cc8f08a29c6183794790547d0945f3d45
Fixed in
  • a4dfd46cc8f08a29c6183794790547d0945f3d45
LinuxLinuxAffected
  • ≥ 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596, < 107e1a469f53a2a70874f3f12bf6fcd23925da1d
Fixed in
  • 107e1a469f53a2a70874f3f12bf6fcd23925da1d

Description

In the Linux kernel, the following vulnerability has been resolved: net: gro: fix double aggregation of flush-marked skbs Commit 0ab03f353d36 ("net-gro: Fix GRO flush when receiving a GSO packet.") added a flush check to skb_gro_receive(), but skb_gro_receive_list() lacks the same validation. As a result, packets marked with NAPI_GRO_CB(skb)->flush may still be re-aggregated. This allows already-GRO'd packets with existing frag_list to be re-aggregated into a new GRO session, corrupting the frag_list chain structure. When skb_segment() attempts to unpack these malformed packets, it encounters invalid state and triggers a kernel panic. Scenario (Tethering/Device forwarding): 1. Driver: Generated aggregated packet P1 via LRO with frag_list 2. Dev A: Receives aggregated fraglist packet and flush flag set 3. Dev A: Re-enters GRO, skb_gro_receive_list() is called 4. Missing flush check allows re-aggregation despite flush flag 5. Frag_list chain becomes corrupted (loops or dangling refs) 6. Dev B: TX path calls skb_segment(), crashes on corrupted frag_list Root cause in skb_segment(): The check at line ~4891: if (hsize <= 0 && i >= nfrags && skb_headlen(list_skb) && (skb_headlen(list_skb) == len || sg)) { When frag_list is corrupted by double aggregation, when list_skb is a NULL pointer from skb->next, skb_headlen(list_skb) dereference NULL/corrupted pointers occurs. Call Trace: skb_headlen(NULL skb) skb_segment tcp_gso_segment tcp4_gso_segment inet_gso_segment skb_mac_gso_segment __skb_gso_segment skb_gso_segment validate_xmit_skb validate_xmit_skb_list sch_direct_xmit qdisc_restart __qdisc_run qdisc_run net_tx_action Fix: Add NAPI_GRO_CB(skb)->flush validation to the early-return check in skb_gro_receive_list(), matching the defensive programming pattern of skb_gro_receive().

References

Community reviews

Loading reviews…