In the Linux kernel, the following vulnerability has been resolved:
vfs: fix race between evice_inodes() and find_inode()&iput()
Hi, all
Recently I noticed a bug[1] in btrfs, after digged it into and I believe it'a race in vfs.
Let's assume there's a inode (ie ino 261) with i_count 1 is called by iput(), and there's a concurrent thread calling generic_shutdown_super().
cpu0: cpu1: iput() // i_count is 1 ->spin_lock(inode) ->dec i_count to 0 ->iput_final() generic_shutdown_super() ->__inode_add_lru() ->evict_inodes() // cause some reason[2] ->if (atomic_read(inode->i_count)) continue; // return before // inode 261 passed the above check // list_lru_add_obj() // and then schedule out ->spin_unlock() // note here: the inode 261 // was still at sb list and hash list, // and I_FREEING|I_WILL_FREE was not been set
btrfs_iget() // after some function calls ->find_inode() // found the above inode 261 ->spin_lock(inode) // check I_FREEING|I_WILL_FREE // and passed ->__iget() ->spin_unlock(inode) // schedule back ->spin_lock(inode) // check (I_NEW|I_FREEING|I_WILL_FREE) flags, // passed and set I_FREEING iput() ->spin_unlock(inode) ->spin_lock(inode) ->evict() // dec i_count to 0 ->iput_final() ->spin_unlock() ->evict()
Now, we have two threads simultaneously evicting the same inode, which may trigger the BUG(inode->i_state & I_CLEAR) statement both within clear_inode() and iput().
To fix the bug, recheck the inode->i_count after holding i_lock. Because in the most scenarios, the first check is valid, and the overhead of spin_lock() can be reduced.
If there is any misunderstanding, please let me know, thanks.
[1]: https://lore.kernel.org/linux-btrfs/[email protected]/ [2]: The reason might be 1. SB_ACTIVE was removed or 2. mapping_shrinkable() return false when I reproduced the bug.
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 |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-headersUpgrade kernel-modules-coreUpgrade kernel-debug-develUpgrade kernel-rtUpgrade perfUpgrade kernel-develUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-coreUpgrade kernel-64k-modules-extraUpgrade kernel-64k-debug-modules-coreUpgrade kernel-rt-debug-develUpgrade kernel-rt-64k-modules-extraUpgrade libperfUpgrade kernel-uki-virtUpgrade kernel-modulesUpgrade kernel-64k-modules-coreUpgrade kernel-64k-develUpgrade kernel-rt-modulesUpgrade kernel-docUpgrade kernel-modules-extraUpgrade rtlaUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdumpUpgrade kernel-64k-debug-modules-extraUpgrade kernel-rt-debug-modules-coreUpgrade python3-perfUpgrade kernel-zfcpdump-develUpgrade kernel-64k-devel-matchedUpgrade kernel-debug-devel-matchedUpgrade kernel-devel-matchedUpgrade kernel-toolsUpgrade kernel-debugUpgrade kernel-rt-64k-modulesUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-coreUpgrade kernel-rt-64k-develUpgrade kernel-64k-debug-coreUpgrade kernel-rt-64k-debugUpgrade kernel-tools-libsUpgrade kernel-rt-modules-coreUpgrade kernel-rt-develUpgrade kernel-rt-64k-debug-coreUpgrade kernel-rt-modules-extraUpgrade kernel-rt-64k-debug-develUpgrade kernel-zfcpdump-modulesUpgrade kernel-debug-modulesUpgrade kernel-cross-headersUpgrade kernelUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-64k-modules-coreUpgrade kernel-64k-debug-develUpgrade kernel-rt-64kUpgrade kernel-rt-debug-coreUpgrade kernel-tools-libs-develUpgrade kernel-64k-modulesUpgrade kernel-rt-debugUpgrade kernel-debug-uki-virtUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-64k-debugUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-rt-64k-coreUpgrade kernel-64kUpgrade kernel-uki-virt-addonsUpgrade kernel-zfcpdump-devel-matchedUpgrade rvUpgrade kernel-64k-coreUpgrade kernel-64k-debug-modulesUpgrade kernel-debug-modules-core | Nov 20, 2025 | Nov 11, 2025 |
| Amazon Linux Ami 2 | — | Upgrade bpftool-debuginfoUpgrade perfUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade python-perfUpgrade kernel-headersUpgrade perf-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.15.168-114.166Upgrade kernel-tools-develUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.10.227-219.884Upgrade kernelUpgrade kernel-devel | Mar 14, 2025 | Oct 21, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-debuginfoUpgrade kernel-headersUpgrade perf-debuginfoUpgrade kernel-libbpfUpgrade kernel-tools-develUpgrade perfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel-libbpf-staticUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-libbpf-develUpgrade bpftool-debuginfoUpgrade kernel-modules-extra-commonUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-6.1.115-126.197Upgrade kernel-develUpgrade python3-perf-debuginfoUpgrade kernel | Mar 27, 2025 | Oct 21, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Nov 11, 2024 | Oct 21, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade kernelUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade bpftool | Feb 11, 2025 | Oct 21, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-abi-stablelistsUpgrade bpftoolUpgrade kernelUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perf | Feb 11, 2025 | Oct 21, 2024 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Dec 17, 2024 | Oct 21, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | Jul 9, 2025 | Oct 21, 2024 |
| Rocky_linux | — | Upgrade kernel-rt-debug-modules-extraUpgrade kernel-debuginfo-common-s390xUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdumpUpgrade kernel-uki-virt-addonsUpgrade rvUpgrade kernel-debug-debuginfoUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rtUpgrade kernel-rt-modules-coreUpgrade kernel-tools-libs-develUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-debug-debuginfoUpgrade kernel-tools-libsUpgrade perfUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-modules-coreUpgrade kernel-rt-debuginfoUpgrade kernel-toolsUpgrade python3-perf-debuginfoUpgrade kernel-zfcpdump-devel-matchedUpgrade libperf-debuginfoUpgrade kernel-rt-develUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-debug-coreUpgrade kernel-rt-modulesUpgrade perf-debuginfoUpgrade kernel-debug-coreUpgrade kernel-coreUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-zfcpdump-develUpgrade libperfUpgrade kernel-debug-modulesUpgrade kernel-modules-extraUpgrade kernel-develUpgrade python3-perfUpgrade kernel-debug-develUpgrade kernel-rt-debug-develUpgrade kernelUpgrade kernel-tools-debuginfoUpgrade kernel-devel-matchedUpgrade kernel-debuginfoUpgrade rtlaUpgrade kernel-modules-coreUpgrade kernel-debug-uki-virtUpgrade kernel-rt-debug-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-coreUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modulesUpgrade kernel-uki-virtUpgrade kernel-debugUpgrade kernel-rt-debug | Feb 5, 2026 | Nov 21, 2025 |
| Ubuntu | — | Upgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1078-azureUpgrade linux-image-5.4.0-1145-azureUpgrade linux-image-oem-20.04Upgrade linux-image-6.11.0-1010-lowlatency-64kUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-127-genericUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1025-azure-fdeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-bluefieldUpgrade linux-image-6.11.0-1009-azure-fdeUpgrade linux-image-5.4.0-1099-bluefieldUpgrade linux-image-6.11.0-18-generic-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1073-awsUpgrade linux-image-5.4.0-1140-awsUpgrade linux-image-6.8.0-1024-oemUpgrade linux-image-6.8.0-1020-oracle-64kUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1022-nvidiaUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-1066-ibmUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.4.0-208-lowlatencyUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.15.0-127-generic-lpaeUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1025-azureUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-1070-gkeUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-1056-gkeopUpgrade linux-image-oemUpgrade linux-image-5.4.0-1127-kvmUpgrade linux-image-oem-20.04cUpgrade linux-image-generic-lpaeUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-intel-iotgUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-gkeUpgrade linux-image-genericUpgrade linux-image-5.15.0-1071-oracleUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-virtualUpgrade linux-image-6.8.0-1020-oracleUpgrade linux-image-6.8.0-1022-nvidia-lowlatencyUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-realtimeUpgrade linux-image-6.8.0-1019-raspiUpgrade linux-image-5.15.0-1070-kvmUpgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1071-intel-iotgUpgrade linux-image-6.8.0-57-genericUpgrade linux-image-fipsUpgrade linux-image-nvidiaUpgrade linux-image-6.11.0-18-genericUpgrade linux-image-intelUpgrade linux-image-oem-22.04dUpgrade linux-image-gcp-64kUpgrade linux-image-6.11.0-1009-awsUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-5.15.0-1072-gcpUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-6.11.0-1010-lowlatencyUpgrade linux-image-oem-22.04cUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.4.0-1142-awsUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.11.0-1008-raspiUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-1066-raspiUpgrade linux-image-5.4.0-1143-gcpUpgrade linux-image-6.8.0-54-lowlatencyUpgrade linux-image-raspiUpgrade linux-image-aws-lts-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-6.8.0-57-generic-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-6.11.0-1015-oemUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-5.15.0-127-generic-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.11.0-1005-realtimeUpgrade linux-image-6.11.0-1011-oracle-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-24.04bUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-5.4.0-1048-iotUpgrade linux-image-azure-fdeUpgrade linux-image-ibm-classicUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oracle-64kUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1022-ibmUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-5.4.0-1086-ibmUpgrade linux-image-5.15.0-127-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1022-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1019-gkeUpgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-gcpUpgrade linux-image-5.15.0-1068-nvidia-lowlatencyUpgrade linux-image-6.8.0-54-generic-64kUpgrade linux-image-6.8.0-1024-gcpUpgrade linux-image-lowlatencyUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-54-lowlatency-64kUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.4.0-208-genericUpgrade linux-image-5.4.0-208-generic-lpaeUpgrade linux-image-6.11.0-1011-oracleUpgrade linux-image-awsUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-54-genericUpgrade linux-image-azure-cvmUpgrade linux-image-azureUpgrade linux-image-5.4.0-1058-xilinx-zynqmpUpgrade linux-image-nvidia-64kUpgrade linux-image-raspi2Upgrade linux-image-raspi-nolpaeUpgrade linux-image-ibmUpgrade linux-image-oem-20.04dUpgrade linux-image-gkeop-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1023-awsUpgrade linux-image-6.8.0-1022-nvidia-64kUpgrade linux-image-6.8.0-1006-gkeopUpgrade linux-image-5.15.0-1068-nvidiaUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azure-nvidiaUpgrade linux-image-5.15.0-127-lowlatency-64kUpgrade linux-image-5.15.0-1039-xilinx-zynqmpUpgrade linux-image-6.11.0-1009-gcpUpgrade linux-image-5.4.0-1138-oracleUpgrade linux-image-6.8.0-1024-gcp-64kUpgrade linux-image-6.11.0-1009-azure | Dec 18, 2024 | Oct 21, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 13, 2025 | Oct 21, 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