In the Linux kernel, the following vulnerability has been resolved:
writeback: fix race between cgroup_writeback_umount() and inode_switch_wbs()
When a container exits, the following BUG_ON() is occasionally triggered:
================================================================== VFS: Busy inodes after unmount of sdb (ext4) ------------[ cut here ]------------ kernel BUG at fs/super.c:695! CPU: 3 PID: 6 Comm: containerd-shim Tainted: G OE K 6.6 #1 pstate: 63400009 (nZCv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--) pc : generic_shutdown_super+0xf0/0x100 lr : generic_shutdown_super+0xf0/0x100 Call trace: generic_shutdown_super+0xf0/0x100 kill_block_super+0x20/0x48 ext4_kill_sb+0x28/0x60 deactivate_locked_super+0x54/0x130 deactivate_super+0x84/0xa0 cleanup_mnt+0xa4/0x140 __cleanup_mnt+0x18/0x28 task_work_run+0x78/0xe0 do_notify_resume+0x204/0x240 ==================================================================
The root cause is a race between cgroup_writeback_umount() and inode_switch_wbs()/cleanup_offline_cgwb(). There is a window between inode_prepare_wbs_switch() returning true and the subsequent wb_queue_isw() call. Following is the process that triggers the issue:
CPU A (umount) | CPU B (writeback) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inode_switch_wbs/cleanup_offline_cgwb atomic_inc(&isw_nr_in_flight) inode_prepare_wbs_switch -> passes SB_ACTIVE check __iget(inode) generic_shutdown_super sb->s_flags &= ~SB_ACTIVE cgroup_writeback_umount(sb) smp_mb() atomic_read(&isw_nr_in_flight) rcu_barrier() -> no pending RCU callbacks flush_workqueue(isw_wq) -> nothing queued, returns evict_inodes(sb) -> Inode skipped as isw still holds a ref. sop->put_super(sb) /* destroys percpu counters */ -> VFS: Busy inodes after unmount! wb_queue_isw() queue_work(isw_wq, ...) /* later in work function */ inode_switch_wbs_work_fn process_inode_switch_wbs iput() -> evict percpu_counter_dec() // UAF!
Fix this by extending the RCU read-side critical section in inode_switch_wbs() and cleanup_offline_cgwb() to cover from inode_prepare_wbs_switch() through wb_queue_isw(). Since there is no sleep in this window, rcu_read_lock() can be used. Then add a synchronize_rcu() in cgroup_writeback_umount() before the existing rcu_barrier(), so that all in-flight switchers that have passed the SB_ACTIVE check have completed queue_work() before flush_workqueue() is called.
The existing rcu_barrier() is intentionally retained so this fix can be backported unchanged to stable kernels (5.10.y, 6.6.y, ...) that still queue switches via queue_rcu_work(). It is a no-op on current mainline (since commit e1b849cfa6b6 ("writeback: Avoid contention on wb->list_lock when switching inodes")) and is removed in a follow-up patch.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade bpftool6.12-debuginfoUpgrade perf6.12Upgrade kernel-tools-debuginfoUpgrade kernel6.18Upgrade kernel-debuginfo-common-aarch64Upgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.12Upgrade kernel6.12-develUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade perf-debuginfoUpgrade bpftool6.18Upgrade python3-perf-debuginfoUpgrade kernel-develUpgrade kernel-livepatch-6.18.39-79.141Upgrade kernel6.12-tools-develUpgrade kernel-modules-extraUpgrade kernel-headersUpgrade kernel-debuginfo-common-x86_64Upgrade kernel6.12-headersUpgrade python3-perf6.12Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-modules-extra-commonUpgrade bpftool-debuginfoUpgrade kernel6.12-modules-extraUpgrade perf6.18-debuginfoUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.18-debuginfoUpgrade bpftool6.12Upgrade perfUpgrade python3-perf6.18Upgrade python3-perfUpgrade microvm-kernel6.18Upgrade kernel6.18-modules-extraUpgrade python3-perf6.12-debuginfoUpgrade kernel-livepatch-6.12.94-123.174Upgrade kernel6.18-tools-debuginfoUpgrade kernel6.18-debuginfo-common-x86_64Upgrade bpftool6.18-debuginfoUpgrade kernelUpgrade bpftoolUpgrade perf6.18Upgrade kernel6.12-toolsUpgrade kernel-modules-extra-commonUpgrade kernel6.18-develUpgrade kernel6.18-tools-develUpgrade kernel6.18-toolsUpgrade kernel6.12-debuginfoUpgrade python3-perf6.18-debuginfoUpgrade kernel6.18-headersUpgrade kernel-toolsUpgrade kernel-livepatch-6.1.180-225.360Upgrade kernel-tools-develUpgrade perf6.12-debuginfo | Aug 18, 2026 | Jul 25, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.1Upgrade linux-6.12 | Jul 28, 2026 | Jul 28, 2026 |
| Redhat_linux | — | No solution exists | Jul 29, 2026 | Jul 25, 2026 |
| Ubuntu | — | Upgrade linux-image-gcp-7.0Upgrade linux-image-gke-64kUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-aws-7.0Upgrade linux-image-6.8.0-147-lowlatency-64kUpgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-gke-7.0Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-ibm-7.0Upgrade linux-image-raspiUpgrade linux-image-gke-64k-7.0Upgrade linux-image-azure-fde-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1069-azure-fdeUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1067-ibmUpgrade linux-image-generic-lpaeUpgrade linux-image-virtual-6.8Upgrade linux-image-gcp-fipsUpgrade linux-image-gkeopUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-oracleUpgrade linux-image-oem-26.04Upgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-aws-64k-7.0Upgrade linux-image-6.8.0-1071-gcpUpgrade linux-image-azure-lts-26.04Upgrade linux-image-fipsUpgrade linux-image-7.0.0-1012-awsUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-lowlatencyUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1066-gkeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-oem-26.04bUpgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.8.0-147-lowlatencyUpgrade linux-image-6.8.0-147-generic-64kUpgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-7.0.0-1013-oemUpgrade linux-image-oem-26.04aUpgrade linux-image-realtime-6.8.1Upgrade linux-image-realtime-7.0Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.8.0-147-fipsUpgrade linux-image-6.8.0-147-genericUpgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-nvidia-bosUpgrade linux-image-genericUpgrade linux-image-nvidia-tegraUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-1071-gcp-fipsUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-7.0Upgrade linux-image-azureUpgrade linux-image-6.8.0-1071-azure-fipsUpgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-gcpUpgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-oracle-7.0Upgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1064-oracle-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.8.0-1067-aws-64kUpgrade linux-image-virtual-7.0Upgrade linux-image-gke-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-azure-lts-24.04Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-ibmUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-generic-7.0Upgrade linux-image-6.8.0-1052-gkeopUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-aws-64kUpgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-6.8.0-1036-nvidia-tegra-rtUpgrade linux-image-virtualUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-6.8.0-1071-gcp-64kUpgrade linux-image-6.8.0-1036-nvidia-tegraUpgrade linux-image-nvidia-64kUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-7.0.0-31-genericUpgrade linux-image-oracle-6.8Upgrade linux-image-laptop-23.10Upgrade linux-image-intel-iotgUpgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-1067-aws-fipsUpgrade linux-image-6.8.0-1067-awsUpgrade linux-image-7.0.0-1012-aws-64kUpgrade linux-image-6.8.0-1064-oracleUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-azure-7.0Upgrade linux-image-generic-6.8Upgrade linux-image-oem-7.0Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-realtimeUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-generic-64kUpgrade linux-image-awsUpgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-azure-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.1-1062-realtimeUpgrade linux-image-6.8.0-1071-azureUpgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-ibm-classicUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-realtime-64kUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-64k-7.0Upgrade linux-image-gkeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-6.8.0-1066-gke-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 |
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