Get a Demo

Let's Patch It!

Book a short call with one our specialists, we'll walk you through how Endor Patches work, and ask you a few questions about your environment (like your primary programming languages and repository management). We'll also send you an email right after you fill out the form, feel free to reply with any questions you have in advance!

CVE

CVE-2026-68136

net: gro: fix double aggregation of flush-marked skbs
Back to all
CVE

CVE-2026-68136

net: gro: fix double aggregation of flush-marked skbs

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 skbgroreceive(), but

skbgroreceive_list() lacks the same validation.

As a result, packets marked with NAPIGROCB(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, skbgroreceive_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 skbsegment(), crashes on corrupted fraglist

Root cause in skb_segment():

  The check at line ~4891:

    if (hsize <= 0 && i >= nfrags && skbheadlen(listskb) &&

        (skbheadlen(listskb) == len || sg)) {

  When fraglist is corrupted by double aggregation, when listskb is

  a NULL pointer from skb->next, skbheadlen(listskb) dereference

  NULL/corrupted pointers occurs.

Call Trace:

 skb_headlen(NULL skb)

 skb_segment

 tcpgsosegment

 tcp4gsosegment

 inetgsosegment

 skbmacgso_segment

 _skbgso_segment

 skbgsosegment

 validatexmitskb

 validatexmitskb_list

 schdirectxmit

 qdisc_restart

 _qdiscrun

 qdisc_run

 nettxaction

Fix: Add NAPIGROCB(skb)->flush validation to the early-return check in

skbgroreceive_list(), matching the defensive programming pattern of

skbgroreceive().

Package Versions Affected

Package Version
patch Availability
No items found.

Automatically patch vulnerabilities without upgrading

Fix Without Upgrading
Detect compatible fix
Apply safe remediation
Fix with a single pull request

CVSS Version

Severity
Base Score
CVSS Version
Score Vector
C
H
U
9.8
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/107e1a469f53a2a70874f3f12bf6fcd23925da1d, https://git.kernel.org/stable/c/7fc7e35212cf58c134310fb47566a844297ceae9, https://git.kernel.org/stable/c/a4dfd46cc8f08a29c6183794790547d0945f3d45, https://git.kernel.org/stable/c/d1fb23f8f794ac4683127bd49a6422bd87e0ac02, https://git.kernel.org/stable/c/db3e82da616f52e2b27e25e7be3fde2f2a5e54d6, https://git.kernel.org/stable/c/e751256486d0ded20f5a9f9863467f1dce65142f, https://git.kernel.org/stable/c/fc0c0f7a207f0cd2d2aa725696c907f7d03af9e0, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68136.json, https://nvd.nist.gov/vuln/detail/CVE-2026-68136, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0.00546%
EPSS Percentile
0.43456%
Introduced Version
3a1296a38d0cf62bffb9a03c585cbd5dbf15d596,5.6.0,5.11.0,6.2.0,6.7.0,6.13.0,6.19.0,0
Fix Available
e751256486d0ded20f5a9f9863467f1dce65142f,5.10.266,6.1.184,6.6.153,6.12.101,6.18.42,7.1.6,6.12.101-1~deb12u1,6.12.101-1

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading