CVE-2026-22979: Linux kernel · net: fix memory leak in skb_segment_list for GRO packets
Affects Linux kernelSource GCVE Database
Not known to be exploited · CVSS 5.5 Medium · fixed in 6.8.0-1057.60~22.04.1 : update Linux kernel when convenient.
Data as of 26 Oct 2026, 14:05 UTC
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 3% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 6.8.0-1057.60~22.04.1, 6.8.0-1059.65~22.04.1, 6.8.0-1058.65~22.04.1 +37
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HExploitation evidence
Disclosed: evidence found.
CVE published 23 Jan 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by 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.
Patches and advisories
- ubuntu.com/security/notices/USN-8278-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8289-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8296-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8296-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8289-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8278-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8393-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8440-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8499-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8570-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8594-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8604-1 (opens in a new tab)
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Ubuntu 25.10linuxpkg:deb/ubuntu/linux?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 25.10linux-awspkg:deb/ubuntu/linux-aws?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 25.10linux-azurepkg:deb/ubuntu/linux-azure?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 25.10linux-azure-fdepkg:deb/ubuntu/linux-azure-fde?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 25.10linux-gcppkg:deb/ubuntu/linux-gcp?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 25.10linux-oraclepkg:deb/ubuntu/linux-oracle?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
In the Linux kernel, the following vulnerability has been resolved: net: fix memory leak in skb_segment_list for GRO packets When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine. Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments. Prior to commit ed4cccef64c1 ("gro: fix ownership transfer"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket. However, commit ed4cccef64c1 ("gro: fix ownership transfer") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated. As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak. The leak can be observed via KMEMLEAK when tearing down the networking environment: unreferenced object 0xffff8881e6eb9100 (size 2048): comm "ping", pid 6720, jiffies 4295492526 backtrace: kmem_cache_alloc_noprof+0x5c6/0x800 sk_prot_alloc+0x5b/0x220 sk_alloc+0x35/0xa00 inet6_create.part.0+0x303/0x10d0 __sock_create+0x248/0x640 __sys_socket+0x11b/0x1d0 Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed. The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 ("net: fix fraglist segmentation reference count leak"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().
References
- ubuntu.com/security/CVE-2026-22979 (opens in a new tab)
- cve.org/CVERecord?id=CVE-2026-22979 (opens in a new tab)
- git.kernel.org/linus/238e03d0466239410b72294b79494e43d4fabe77 (opens in a new tab)
- git.kernel.org/stable/c/0b27828ebd1ed3107d7929c3737adbe862e99e74 (opens in a new tab)
- git.kernel.org/stable/c/238e03d0466239410b72294b79494e43d4fabe77 (opens in a new tab)
- git.kernel.org/stable/c/3264881431e308b9c72cb8a0159d57a56d67dd79 (opens in a new tab)
- git.kernel.org/stable/c/88bea149db2057112af3aaf63534b24fab5858ab (opens in a new tab)
- git.kernel.org/stable/c/c114a32a2e70b82d447f409f7ffcfa3058f9d5bd (opens in a new tab)
- ubuntu.com/security/notices/USN-8278-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8289-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8296-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8296-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8289-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8278-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8393-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8440-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8499-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8570-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8594-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8604-1 (opens in a new tab)