In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix block group refcount race in btrfs_create_pending_block_groups()
Block group creation is done in two phases, which results in a slightly unintuitive property: a block group can be allocated/deallocated from after btrfs_make_block_group() adds it to the space_info with btrfs_add_bg_to_space_info(), but before creation is completely completed in btrfs_create_pending_block_groups(). As a result, it is possible for a block group to go unused and have 'btrfs_mark_bg_unused' called on it concurrently with 'btrfs_create_pending_block_groups'. This causes a number of issues, which were fixed with the block group flag 'BLOCK_GROUP_FLAG_NEW'.
However, this fix is not quite complete. Since it does not use the unused_bg_lock, it is possible for the following race to occur:
btrfs_create_pending_block_groups btrfs_mark_bg_unused if list_empty // false list_del_init clear_bit else if (test_bit) // true list_move_tail
And we get into the exact same broken ref count and invalid new_bgs state for transaction cleanup that BLOCK_GROUP_FLAG_NEW was designed to prevent.
The broken refcount aspect will result in a warning like:
[1272.943527] refcount_t: underflow; use-after-free. [1272.943967] WARNING: CPU: 1 PID: 61 at lib/refcount.c:28 refcount_warn_saturate+0xba/0x110 [1272.944731] Modules linked in: btrfs virtio_net xor zstd_compress raid6_pq null_blk [last unloaded: btrfs] [1272.945550] CPU: 1 UID: 0 PID: 61 Comm: kworker/u32:1 Kdump: loaded Tainted: G W 6.14.0-rc5+ #108 [1272.946368] Tainted: [W]=WARN [1272.946585] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014 [1272.947273] Workqueue: btrfs_discard btrfs_discard_workfn [btrfs] [1272.947788] RIP: 0010:refcount_warn_saturate+0xba/0x110 [1272.949532] RSP: 0018:ffffbf1200247df0 EFLAGS: 00010282 [1272.949901] RAX: 0000000000000000 RBX: ffffa14b00e3f800 RCX: 0000000000000000 [1272.950437] RDX: 0000000000000000 RSI: ffffbf1200247c78 RDI: 00000000ffffdfff [1272.950986] RBP: ffffa14b00dc2860 R08: 00000000ffffdfff R09: ffffffff90526268 [1272.951512] R10: ffffffff904762c0 R11: 0000000063666572 R12: ffffa14b00dc28c0 [1272.952024] R13: 0000000000000000 R14: ffffa14b00dc2868 R15: 000001285dcd12c0 [1272.952850] FS: 0000000000000000(0000) GS:ffffa14d33c40000(0000) knlGS:0000000000000000 [1272.953458] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [1272.953931] CR2: 00007f838cbda000 CR3: 000000010104e000 CR4: 00000000000006f0 [1272.954474] Call Trace: [1272.954655] <TASK> [1272.954812] ? refcount_warn_saturate+0xba/0x110 [1272.955173] ? __warn.cold+0x93/0xd7 [1272.955487] ? refcount_warn_saturate+0xba/0x110 [1272.955816] ? report_bug+0xe7/0x120 [1272.956103] ? handle_bug+0x53/0x90 [1272.956424] ? exc_invalid_op+0x13/0x60 [1272.956700] ? asm_exc_invalid_op+0x16/0x20 [1272.957011] ? refcount_warn_saturate+0xba/0x110 [1272.957399] btrfs_discard_cancel_work.cold+0x26/0x2b [btrfs] [1272.957853] btrfs_put_block_group.cold+0x5d/0x8e [btrfs] [1272.958289] btrfs_discard_workfn+0x194/0x380 [btrfs] [1272.958729] process_one_work+0x130/0x290 [1272.959026] worker_thread+0x2ea/0x420 [1272.959335] ? __pfx_worker_thread+0x10/0x10 [1272.959644] kthread+0xd7/0x1c0 [1272.959872] ? __pfx_kthread+0x10/0x10 [1272.960172] ret_from_fork+0x30/0x50 [1272.960474] ? __pfx_kthread+0x10/0x10 [1272.960745] ret_from_fork_asm+0x1a/0x30 [1272.961035] </TASK> [1272.961238] ---[ end trace 0000000000000000 ]---
Though we have seen them in the async discard workfn as well. It is most likely to happen after a relocation finishes which cancels discard, tears down the block group, etc.
Fix this fully by taking the lock arou ---truncated---
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.12-tools-develUpgrade kernel6.12-modules-extraUpgrade kernel6.12-libbpf-debuginfoUpgrade kernel-livepatch-6.12.40-63.114Upgrade kernel-livepatch-6.12.40-63.107Upgrade kernel6.12-debuginfo-common-x86_64Upgrade python3-perf6.12Upgrade kernel6.12Upgrade kernel6.12-debuginfo-common-aarch64Upgrade perf6.12Upgrade kernel6.12-develUpgrade kernel6.12-headersUpgrade kernel6.12-modules-extra-commonUpgrade bpftool6.12-debuginfoUpgrade perf6.12-debuginfoUpgrade bpftool6.12Upgrade python3-perf6.12-debuginfoUpgrade kernel6.12-toolsUpgrade kernel6.12-debuginfoUpgrade kernel6.12-libbpf-develUpgrade kernel6.12-libbpf-staticUpgrade kernel6.12-libbpfUpgrade kernel6.12-tools-debuginfo | Aug 5, 2025 | Apr 16, 2025 |
| Debian | — | Upgrade linux | May 15, 2025 | Apr 16, 2025 |
| Suse | — | Upgrade kernel-debug-vdsoUpgrade kernel-rt-develUpgrade dtb-mediatekUpgrade kselftests-kmp-azureUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-rtUpgrade dtb-amdUpgrade reiserfs-kmp-defaultUpgrade dtb-renesasUpgrade kernel-docsUpgrade kernel-source-vanillaUpgrade dtb-armUpgrade dtb-nvidiaUpgrade dtb-appleUpgrade kernel-rt-vdsoUpgrade kernel-obs-buildUpgrade kernel-default-baseUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt_debugUpgrade dlm-kmp-defaultUpgrade kernel-64kb-extraUpgrade kernel-azureUpgrade dtb-xilinxUpgrade kernel-rt-optionalUpgrade ocfs2-kmp-defaultUpgrade dtb-caviumUpgrade dtb-rockchipUpgrade kernel-rt-livepatch-develUpgrade kernel-defaultUpgrade gfs2-kmp-defaultUpgrade reiserfs-kmp-azureUpgrade kselftests-kmp-rtUpgrade kernel-develUpgrade kernel-devel-rtUpgrade dtb-allwinnerUpgrade kernel-rt-extraUpgrade reiserfs-kmp-rtUpgrade dtb-socionextUpgrade dtb-sprdUpgrade kernel-syms-rtUpgrade kernel-default-livepatch-develUpgrade ocfs2-kmp-azureUpgrade kernel-debug-develUpgrade dlm-kmp-azureUpgrade kselftests-kmp-defaultUpgrade kernel-azure-extraUpgrade kernel-kvmsmallUpgrade kernel-default-base-rebuildUpgrade dtb-amazonUpgrade kernel-zfcpdumpUpgrade kernel-default-develUpgrade ocfs2-kmp-rtUpgrade kernel-rtUpgrade kernel-obs-qaUpgrade kernel-macrosUpgrade kernel-devel-azureUpgrade ocfs2-kmp-64kbUpgrade dtb-freescaleUpgrade kernel-kvmsmall-develUpgrade dtb-marvellUpgrade dtb-apmUpgrade dtb-amlogicUpgrade kernel-docs-htmlUpgrade kernel-syms-azureUpgrade kernel-source-rtUpgrade kernel-source-azureUpgrade kernel-default-optionalUpgrade dtb-qcomUpgrade kernel-rt_debug-develUpgrade kernel-azure-vdsoUpgrade kernel-64kb-optionalUpgrade dtb-lgUpgrade dtb-exynosUpgrade dtb-broadcomUpgrade dlm-kmp-64kbUpgrade cluster-md-kmp-rtUpgrade kselftests-kmp-64kbUpgrade kernel-default-vdsoUpgrade gfs2-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-symsUpgrade dtb-alteraUpgrade cluster-md-kmp-defaultUpgrade kernel-default-livepatchUpgrade kernel-default-extraUpgrade kernel-azure-optionalUpgrade kernel-64kb-develUpgrade kernel-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-sourceUpgrade cluster-md-kmp-azureUpgrade kernel-debugUpgrade gfs2-kmp-rtUpgrade kernel-azure-devel | Dec 5, 2025 | May 21, 2025 |
| Ubuntu | — | Upgrade linux-image-aws-64kUpgrade linux-image-azure-6.8Upgrade linux-image-awsUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-realtimeUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-oracle-64kUpgrade linux-image-kvmUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-aws-fips-6.8Upgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-nvidia-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-virtualUpgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-azure-fipsUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-aws-6.8Upgrade linux-image-genericUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-xilinxUpgrade linux-image-gke-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-fipsUpgrade linux-image-ibmUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-gkeopUpgrade linux-image-azureUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidiaUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-gcp-fipsUpgrade linux-image-azure-fips-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-gke-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-gcpUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-generic-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-raspiUpgrade linux-image-realtime-6.8.1Upgrade linux-image-ibm-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-oem-22.04 | Jun 26, 2025 | Apr 16, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 17, 2026 | Apr 16, 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