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.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-livepatch-6.18.39-79.141Upgrade python3-perf6.18Upgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.18-tools-debuginfoUpgrade kernel6.12-debuginfo-common-aarch64Upgrade perf6.18-debuginfoUpgrade kernel6.12Upgrade bpftool6.12-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade perf6.12Upgrade kernel6.12-modules-extraUpgrade kernel6.18-modules-extra-commonUpgrade kernel6.12-modules-extra-commonUpgrade bpftool6.18Upgrade kernel6.12-headersUpgrade perf6.18Upgrade python3-perf6.18-debuginfoUpgrade kernel6.12-develUpgrade bpftool6.12Upgrade kernel6.18-develUpgrade bpftool6.18-debuginfoUpgrade kernel6.18-headersUpgrade kernel6.12-tools-debuginfoUpgrade perf6.12-debuginfoUpgrade python3-perf6.12Upgrade kernel6.12-debuginfoUpgrade kernel6.12-toolsUpgrade kernel-livepatch-6.12.100-125.179Upgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.18-tools-develUpgrade kernel6.18Upgrade kernel6.12-tools-develUpgrade kernel6.18-toolsUpgrade microvm-kernel6.18Upgrade python3-perf6.12-debuginfoUpgrade kernel6.18-modules-extraUpgrade kernel6.18-debuginfo | Aug 18, 2026 | Jul 25, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.12 | Jul 28, 2026 | Jul 28, 2026 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rt | Sep 3, 2026 | Jul 25, 2026 |
| Rocky_linux | — | Upgrade kernel-develUpgrade kernel-modules-coreUpgrade python3-perfUpgrade kernelUpgrade kernel-debug-develUpgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-devel-matchedUpgrade rtlaUpgrade kernel-debugUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-zfcpdump-develUpgrade perfUpgrade kernel-coreUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-debuginfoUpgrade kernel-modules-extraUpgrade python3-perf-debuginfoUpgrade libperf-debuginfoUpgrade perf-debuginfoUpgrade kernel-debug-devel-matchedUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-toolsUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdumpUpgrade rvUpgrade kernel-modules-extra-matchedUpgrade kernel-modulesUpgrade kernel-debuginfo-common-s390xUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdump-coreUpgrade libperfUpgrade kernel-debug-modules | Sep 7, 2026 | Sep 2, 2026 |
| Ubuntu | — | Upgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-gke-7.0Upgrade linux-image-virtualUpgrade linux-image-genericUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-aws-64kUpgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-gkeUpgrade linux-image-7.0.0-1013-oemUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-realtime-7.0Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-gcp-64kUpgrade linux-image-nvidiaUpgrade linux-image-generic-64kUpgrade linux-image-oem-26.04bUpgrade linux-image-ibmUpgrade linux-image-generic-64k-7.0Upgrade linux-image-nvidia-bos-7.0Upgrade linux-image-aws-64k-7.0Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-ibm-7.0Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-gcp-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-oem-7.0Upgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-nvidia-bosUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-nvidia-64kUpgrade linux-image-oem-26.04aUpgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-awsUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-virtual-7.0Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-gke-64k-7.0Upgrade linux-image-generic-7.0Upgrade linux-image-raspi-realtimeUpgrade linux-image-realtime-64kUpgrade linux-image-realtimeUpgrade linux-image-oem-26.04Upgrade linux-image-7.0.0-1012-awsUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-raspiUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gke-64kUpgrade linux-image-gcpUpgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-31-genericUpgrade linux-image-7.0.0-1012-aws-64k | Sep 14, 2026 | Sep 7, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 31, 2026 | Jul 25, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub