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 kernel6.12-debuginfo-common-aarch64Upgrade kernel6.18-debuginfo-common-aarch64Upgrade python3-perf6.18Upgrade perf6.18-debuginfoUpgrade bpftool6.12-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade perf6.18Upgrade kernel6.12Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.12-modules-extraUpgrade kernel6.12-headersUpgrade kernel-livepatch-6.18.39-79.141Upgrade python3-perf6.18-debuginfoUpgrade kernel6.18-tools-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade perf6.12Upgrade bpftool6.18Upgrade kernel6.18-tools-develUpgrade kernel6.18-debuginfoUpgrade kernel6.18-modules-extraUpgrade python3-perf6.12-debuginfoUpgrade kernel6.12-tools-develUpgrade bpftool6.12Upgrade perf6.12-debuginfoUpgrade kernel6.12-toolsUpgrade kernel6.18-debuginfo-common-x86_64Upgrade microvm-kernel6.18Upgrade kernel6.18Upgrade python3-perf6.12Upgrade kernel6.12-develUpgrade kernel6.18-toolsUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.18-develUpgrade kernel6.12-debuginfoUpgrade kernel6.18-headersUpgrade bpftool6.18-debuginfoUpgrade kernel-livepatch-6.12.100-125.179 | Aug 18, 2026 | Jul 25, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.12 | Jul 28, 2026 | Jul 28, 2026 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernel | Sep 3, 2026 | Jul 25, 2026 |
| Rocky_linux | — | Upgrade python3-perfUpgrade kernel-zfcpdump-modules-extraUpgrade kernelUpgrade kernel-develUpgrade kernel-modules-coreUpgrade kernel-debug-develUpgrade kernel-tools-debuginfoUpgrade kernel-zfcpdump-develUpgrade kernel-debuginfoUpgrade kernel-debug-coreUpgrade perfUpgrade rtlaUpgrade kernel-debugUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-debuginfoUpgrade libperf-debuginfoUpgrade kernel-debug-modulesUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-debug-modules-extraUpgrade python3-perf-debuginfoUpgrade kernel-modules-extraUpgrade kernel-debug-debuginfoUpgrade libperfUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-zfcpdumpUpgrade rvUpgrade kernel-modules-extra-matchedUpgrade kernel-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-debuginfo-common-s390xUpgrade kernel-coreUpgrade kernel-toolsUpgrade perf-debuginfo | Sep 7, 2026 | Sep 2, 2026 |
| Ubuntu | — | Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-7.0.0-31-genericUpgrade linux-image-nvidia-64kUpgrade linux-image-gke-64k-7.0Upgrade linux-image-generic-7.0Upgrade linux-image-virtual-hwe-26.04Upgrade linux-image-awsUpgrade linux-image-azure-7.0Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-raspiUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-oracle-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-oracle-64kUpgrade linux-image-virtual-7.0Upgrade linux-image-realtimeUpgrade linux-image-oracleUpgrade linux-image-oem-26.04Upgrade linux-image-gke-64kUpgrade linux-image-realtime-64kUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-7.0.0-1012-awsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-7.0.0-1012-aws-64kUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-gcp-7.0Upgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-oem-26.04aUpgrade linux-image-nvidia-bosUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-7.0Upgrade linux-image-oem-7.0Upgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-oem-26.04bUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-genericUpgrade linux-image-generic-64k-7.0Upgrade linux-image-aws-64k-7.0Upgrade linux-image-virtualUpgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-aws-64kUpgrade linux-image-gkeUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-azureUpgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-7.0.0-1013-oemUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-gke-7.0Upgrade linux-image-azure-lts-26.04Upgrade linux-image-7.0.0-1014-azureUpgrade linux-image-realtime-7.0Upgrade linux-image-ibm-7.0Upgrade linux-image-ibmUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-gcp-64kUpgrade linux-image-generic-64kUpgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-nvidiaUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-nvidia-bos-7.0Upgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-7.0.0-1011-oracle-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