In the Linux kernel, the following vulnerability has been resolved:
smb: During unmount, ensure all cached dir instances drop their dentry
The unmount process (cifs_kill_sb() calling close_all_cached_dirs()) can race with various cached directory operations, which ultimately results in dentries not being dropped and these kernel BUGs:
BUG: Dentry ffff88814f37e358{i=1000000000080,n=/} still in use (2) [unmount of cifs cifs] VFS: Busy inodes after unmount of cifs (cifs) ------------[ cut here ]------------ kernel BUG at fs/super.c:661!
This happens when a cfid is in the process of being cleaned up when, and has been removed from the cfids->entries list, including:
- Receiving a lease break from the server - Server reconnection triggers invalidate_all_cached_dirs(), which removes all the cfids from the list - The laundromat thread decides to expire an old cfid.
To solve these problems, dropping the dentry is done in queued work done in a newly-added cfid_put_wq workqueue, and close_all_cached_dirs() flushes that workqueue after it drops all the dentries of which it's aware. This is a global workqueue (rather than scoped to a mount), but the queued work is minimal.
The final cleanup work for cleaning up a cfid is performed via work queued in the serverclose_wq workqueue; this is done separate from dropping the dentries so that close_all_cached_dirs() doesn't block on any server operations.
Both of these queued works expect to invoked with a cfid reference and a tcon reference to avoid those objects from being freed while the work is ongoing.
While we're here, add proper locking to close_all_cached_dirs(), and locking around the freeing of cfid->dentry.
CVSS Details
- CVSS 3.1 Base Score: 9.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | May 15, 2025 | Dec 27, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Jul 9, 2025 | Dec 27, 2024 |
| Ubuntu | — | Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-realtimeUpgrade linux-image-6.8.0-1028-gcp-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1026-oemUpgrade linux-image-6.11.0-1005-realtimeUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.1-1020-realtimeUpgrade linux-image-6.11.0-1015-oemUpgrade linux-image-raspiUpgrade linux-image-6.8.0-58-genericUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.11.0-1011-oracle-64kUpgrade linux-image-6.11.0-1010-lowlatency-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1010-gkeopUpgrade linux-image-virtualUpgrade linux-image-6.8.0-58-lowlatencyUpgrade linux-image-6.8.0-58-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-azureUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.11.0-1011-oracleUpgrade linux-image-ibm-classicUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-awsUpgrade linux-image-nvidia-64kUpgrade linux-image-azure-fdeUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1023-gkeUpgrade linux-image-6.11.0-1010-lowlatencyUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.11.0-1009-azureUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-azure-nvidiaUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1027-azure-fdeUpgrade linux-image-6.8.0-58-generic-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.11.0-1008-raspiUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1026-nvidia-lowlatencyUpgrade linux-image-6.11.0-1009-azure-fdeUpgrade linux-image-oem-24.04bUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oem-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-oem-22.04dUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1024-oracleUpgrade linux-image-6.8.0-1027-azureUpgrade linux-image-gkeopUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1024-ibmUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1028-gcpUpgrade linux-image-6.8.0-1027-awsUpgrade linux-image-6.8.0-1026-nvidiaUpgrade linux-image-6.11.0-1009-gcpUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.11.0-1009-awsUpgrade linux-image-6.11.0-18-generic-64kUpgrade linux-image-6.8.0-1024-oracle-64kUpgrade linux-image-gkeUpgrade linux-image-lowlatencyUpgrade linux-image-gcp-64kUpgrade linux-image-oem-22.04Upgrade linux-image-genericUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1026-nvidia-64kUpgrade linux-image-6.11.0-18-genericUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1026-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-2023-raspi-realtime | Feb 20, 2025 | Dec 27, 2024 |
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