In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix subvolume deletion lockup caused by inodes xarray race
There is a race condition between inode eviction and inode caching that can cause a live struct btrfs_inode to be missing from the root->inodes xarray. Specifically, there is a window during evict() between the inode being unhashed and deleted from the xarray. If btrfs_iget() is called for the same inode in that window, it will be recreated and inserted into the xarray, but then eviction will delete the new entry, leaving nothing in the xarray:
Thread 1 Thread 2 --------------------------------------------------------------- evict() remove_inode_hash() btrfs_iget_path() btrfs_iget_locked() btrfs_read_locked_inode() btrfs_add_inode_to_root() destroy_inode() btrfs_destroy_inode() btrfs_del_inode_from_root() __xa_erase
In turn, this can cause issues for subvolume deletion. Specifically, if an inode is in this lost state, and all other inodes are evicted, then btrfs_del_inode_from_root() will call btrfs_add_dead_root() prematurely. If the lost inode has a delayed_node attached to it, then when btrfs_clean_one_deleted_snapshot() calls btrfs_kill_all_delayed_nodes(), it will loop forever because the delayed_nodes xarray will never become empty (unless memory pressure forces the inode out). We saw this manifest as soft lockups in production.
Fix it by only deleting the xarray entry if it matches the given inode (using __xa_cmpxchg()).
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.12-tools-debuginfoUpgrade kernel6.12-libbpfUpgrade kernel6.12-headersUpgrade perf6.12-debuginfoUpgrade python3-perf6.12-debuginfoUpgrade kernel6.12-libbpf-debuginfoUpgrade kernel6.12-libbpf-staticUpgrade kernel6.12-develUpgrade kernel6.12-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade bpftool6.12Upgrade bpftool6.12-debuginfoUpgrade kernel6.12-toolsUpgrade kernel6.12-tools-develUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-libbpf-develUpgrade kernel-livepatch-6.12.48-67.114Upgrade python3-perf6.12Upgrade kernel6.12Upgrade kernel6.12-modules-extraUpgrade perf6.12Upgrade kernel6.12-debuginfo-common-x86_64 | Dec 9, 2025 | Sep 23, 2025 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Oracle_linux | — | Upgrade kernel-uek | Nov 11, 2025 | Sep 23, 2025 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Sep 23, 2025 |
| Suse | — | Upgrade dtb-exynosUpgrade dtb-amazonUpgrade dtb-appleUpgrade kernel-docs-htmlUpgrade dtb-qcomUpgrade dtb-sprdUpgrade dtb-broadcomUpgrade kernel-obs-buildUpgrade kernel-default-extraUpgrade dtb-hisiliconUpgrade kernel-kvmsmall-develUpgrade dtb-xilinxUpgrade gfs2-kmp-64kbUpgrade kernel-kvmsmallUpgrade dtb-socionextUpgrade kselftests-kmp-rtUpgrade kernel-64kb-optionalUpgrade cluster-md-kmp-defaultUpgrade gfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade dtb-apmUpgrade kernel-docsUpgrade dtb-mediatekUpgrade kernel-rt-develUpgrade kernel-rt-livepatch-develUpgrade kernel-64kb-develUpgrade dtb-armUpgrade dtb-amlogicUpgrade kernel-rtUpgrade kernel-macrosUpgrade kernel-defaultUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-symsUpgrade kernel-obs-qaUpgrade dtb-rockchipUpgrade dlm-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-defaultUpgrade kernel-source-vanillaUpgrade kernel-rt-vdsoUpgrade dtb-amdUpgrade dlm-kmp-64kbUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade dtb-marvellUpgrade kernel-rt-livepatchUpgrade kernel-rt-optionalUpgrade kernel-64kb-extraUpgrade dtb-allwinnerUpgrade cluster-md-kmp-64kbUpgrade dtb-freescaleUpgrade kernel-64kbUpgrade kernel-default-optionalUpgrade kernel-sourceUpgrade kernel-default-develUpgrade dtb-lgUpgrade cluster-md-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-develUpgrade dtb-nvidia | Dec 5, 2025 | Nov 6, 2025 |
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