CVE-2026-64418: Linux kernel · mm: shrinker: fix shrinker_info teardown race with expansion
Affects Linux kernelSource GCVE Database
Not known to be exploited · CVSS 7.8 High · fixed in 7.0.0-1012.12~24.04.1 : patch Linux kernel soon.
Data as of 26 Oct 2026, 17:16 UTC
- EPSS
- 0.09% chance of exploitation in 30 days – higher than 0% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 7.0.0-1012.12~24.04.1, 7.0.0-1011.11~24.04.1, 7.0.0-31.31~24.04.1 +7
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 25 Jul 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.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Ubuntu 26.04 LTSlinuxpkg:deb/ubuntu/linux?arch=source&distro=resoluteOther threats | Affected
| Fixed in
|
Ubuntu 26.04 LTSlinux-awspkg:deb/ubuntu/linux-aws?arch=source&distro=resoluteOther threats | Affected
| Fixed in
|
Ubuntu 26.04 LTSlinux-azurepkg:deb/ubuntu/linux-azure?arch=source&distro=resoluteOther threats | Affected
| Fixed in– |
Ubuntu 26.04 LTSlinux-azure-fdepkg:deb/ubuntu/linux-azure-fde?arch=source&distro=resoluteOther threats | Affected
| Fixed in– |
Ubuntu 26.04 LTSlinux-gcppkg:deb/ubuntu/linux-gcp?arch=source&distro=resoluteOther threats | Affected
| Fixed in
|
Ubuntu 26.04 LTSlinux-gkepkg:deb/ubuntu/linux-gke?arch=source&distro=resoluteOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A patch is available and has been released by Ubuntu as part of their Linux kernel updates. Users should update their systems to the fixed kernel versions listed in the Ubuntu security advisories USN-8726-1 and USN-8727-1 and reboot to apply the changes. Due to an ABI change, recompilation and reinstallation of third-party kernel modules may be necessary. No additional mitigations are required beyond applying the official updates.
Description
In the Linux kernel, the following vulnerability has been resolved: mm: shrinker: fix shrinker_info teardown race with expansion expand_shrinker_info() iterates all visible memcgs under shrinker_mutex, including memcgs that have not finished ->css_online() yet. Once pn->shrinker_info has been published, teardown must stay serialized with expand_shrinker_info() until that memcg is either fully online or no longer visible to iteration. Today alloc_shrinker_info() breaks that rule by dropping shrinker_mutex before freeing a partially initialized shrinker_info array, which may cause the following race: CPU0 CPU1 ==== ==== css_create --> list_add_tail_rcu(&css->sibling, &parent_css->children); online_css --> mem_cgroup_css_online --> alloc_shrinker_info --> alloc node0 info rcu_assign_pointer(C->node0->shrinker_info, old0) alloc node1 info -> FAIL -> goto err mutex_unlock(shrinker_mutex) shrinker_alloc() --> shrinker_memcg_alloc --> mutex_lock(shrinker_mutex) expand_shrinker_info --> mem_cgroup_iter see the memcg expand_one_shrinker_info --> old0 = C->node0->shrinker_info memcpy(new->unit, old0->unit, ...); free_shrinker_info --> kvfree(old0); /* double free !! */ kvfree_rcu(old0, rcu); The same problem exists later in mem_cgroup_css_online(). If alloc_shrinker_info() succeeds but a subsequent objcg allocation fails, the free_objcg -> free_shrinker_info() unwind path tears down the already published pn->shrinker_info arrays without shrinker_mutex. The expand_one_shrinker_info() can race with that teardown in the same way, leading to use-after-free or double-free of the old shrinker_info. Fix this by serializing shrinker_info teardown with shrinker_mutex, and by keeping alloc_shrinker_info() error cleanup inside the locked section.
References
- nvd.nist.gov/vuln/detail/CVE-2026-64418 (opens in a new tab)
- git.kernel.org/stable/c/284c267f013e45d8c89d9fb9373105dc8e6c0947 (opens in a new tab)
- git.kernel.org/stable/c/6465ff3ce65131c774a312d450abe10f4b9f3875 (opens in a new tab)
- git.kernel.org/stable/c/65476d31d8056e859c48580f82295ce159196ffe (opens in a new tab)
- git.kernel.org/stable/c/b9a280a9a454ed514636351d53fe2a233dc5054b (opens in a new tab)
- ubuntu.com/security/CVE-2026-64418 (opens in a new tab)
- cve.org/CVERecord?id=CVE-2026-64418 (opens in a new tab)
- git.kernel.org/linus/65476d31d8056e859c48580f82295ce159196ffe (opens in a new tab)
- ubuntu.com/security/notices/USN-8726-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8727-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8728-1 (opens in a new tab)