CVE-2026-68136

Source
https://cve.org/CVERecord?id=CVE-2026-68136
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68136.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-68136
Downstream
Published
2026-08-10T11:58:59.450Z
Modified
2026-08-25T03:51:51.906848442Z
Severity
  • 9.8 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
net: gro: fix double aggregation of flush-marked skbs
Details

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 fraglist to be re-aggregated into a new GRO session, corrupting the fraglist 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 fraglist 2. Dev A: Receives aggregated fraglist packet and flush flag set 3. Dev A: Re-enters GRO, skbgroreceivelist() is called 4. Missing flush check allows re-aggregation despite flush flag 5. Fraglist chain becomes corrupted (loops or dangling refs) 6. Dev B: TX path calls skbsegment(), crashes on corrupted frag_list

Root cause in skbsegment(): The check at line ~4891: if (hsize <= 0 && i >= nfrags && skbheadlen(listskb) && (skbheadlen(list_skb) == 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: skbheadlen(NULL skb) skbsegment tcpgsosegment tcp4gsosegment inetgsosegment skbmacgso_segment __skbgsosegment skbgsosegment validatexmitskb validatexmitskblist schdirectxmit qdiscrestart __qdiscrun qdiscrun nettxaction

Fix: Add NAPIGROCB(skb)->flush validation to the early-return check in skbgroreceivelist(), matching the defensive programming pattern of skbgro_receive().

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68136.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
3a1296a38d0cf62bffb9a03c585cbd5dbf15d596
Fixed
7fc7e35212cf58c134310fb47566a844297ceae9
Fixed
d1fb23f8f794ac4683127bd49a6422bd87e0ac02
Fixed
db3e82da616f52e2b27e25e7be3fde2f2a5e54d6
Fixed
107e1a469f53a2a70874f3f12bf6fcd23925da1d
Fixed
a4dfd46cc8f08a29c6183794790547d0945f3d45
Fixed
fc0c0f7a207f0cd2d2aa725696c907f7d03af9e0
Fixed
e751256486d0ded20f5a9f9863467f1dce65142f

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68136.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.6.0
Fixed
5.10.266
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
6.1.184
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.153
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.101
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.42
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.6

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68136.json"