In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix crash on racing fsync and size-extending write into prealloc
We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():
BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192) ------------[ cut here ]------------ kernel BUG at fs/btrfs/ctree.c:2620! invalid opcode: 0000 [#1] PREEMPT SMP PTI CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]
With the following stack trace:
#0 btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4) #1 btrfs_drop_extents (fs/btrfs/file.c:411:4) #2 log_one_extent (fs/btrfs/tree-log.c:4732:9) #3 btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9) #4 btrfs_log_inode (fs/btrfs/tree-log.c:6626:9) #5 btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8) #6 btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8) #7 btrfs_sync_file (fs/btrfs/file.c:1933:8) #8 vfs_fsync_range (fs/sync.c:188:9) #9 vfs_fsync (fs/sync.c:202:9) #10 do_fsync (fs/sync.c:212:9) #11 __do_sys_fdatasync (fs/sync.c:225:9) #12 __se_sys_fdatasync (fs/sync.c:223:1) #13 __x64_sys_fdatasync (fs/sync.c:223:1) #14 do_syscall_x64 (arch/x86/entry/common.c:52:14) #15 do_syscall_64 (arch/x86/entry/common.c:83:7) #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)
So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().
This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:
>>> print_extent_buffer(prog.crashed_thread().stack_trace()[0]["eb"]) leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610 leaf 33439744 flags 0x100000000000000 fs uuid e5bd3946-400c-4223-8923-190ef1f18677 chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160 generation 7 transid 9 size 8192 nbytes 8473563889606862198 block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0 sequence 204 flags 0x10(PREALLOC) atime 1716417703.220000000 (2024-05-22 15:41:43) ctime 1716417704.983333333 (2024-05-22 15:41:44) mtime 1716417704.983333333 (2024-05-22 15:41:44) otime 17592186044416.000000000 (559444-03-08 01:40:16) item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13 index 195 namelen 3 name: 193 item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37 location key (0 UNKNOWN.0 0) type XATTR transid 7 data_len 1 name_len 6 name: user.a data a item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53 generation 9 type 1 (regular) extent data disk byte 303144960 nr 12288 extent data offset 0 nr 4096 ram 12288 extent compression 0 (none) item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53 generation 9 type 2 (prealloc) prealloc data disk byte 303144960 nr 12288 prealloc data offset 4096 nr 8192 item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53 generation 9 type 2 (prealloc) prealloc data disk byte 303144960 nr 12288 prealloc data offset 8192 nr 4096 ...
So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.
Here is the state of ---truncated---
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 |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade perf-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-toolsUpgrade kernel-livepatch-6.1.94-99.176Upgrade bpftoolUpgrade python3-perfUpgrade kernel-modules-extraUpgrade kernel-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-libbpf-staticUpgrade kernel-headersUpgrade kernel-tools-debuginfoUpgrade kernelUpgrade kernel-libbpfUpgrade kernel-develUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-x86_64 | Jun 11, 2025 | Jun 25, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Jun 25, 2024 |
| Oracle_linux | — | Upgrade kernel-uek | Feb 24, 2026 | Jun 25, 2024 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Jun 25, 2024 |
| Suse | — | Upgrade kselftests-kmp-64kbUpgrade cluster-md-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade dtb-marvellUpgrade kernel-64kb-livepatch-develUpgrade dtb-lgUpgrade dtb-freescaleUpgrade dtb-amdUpgrade kernel-64kb-optionalUpgrade kernel-symsUpgrade reiserfs-kmp-64kbUpgrade dtb-exynosUpgrade kernel-azureUpgrade kernel-syms-azureUpgrade kernel-azure-baseUpgrade gfs2-kmp-rtUpgrade kernel-macrosUpgrade kernel-obs-qaUpgrade kernel-default-extraUpgrade kernel-azure-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-kvmsmall-develUpgrade dtb-appleUpgrade kernel-devel-azureUpgrade kernel-kvmsmall-vdsoUpgrade dtb-allwinnerUpgrade kernel-azure-extraUpgrade reiserfs-kmp-defaultUpgrade kernel-rt_debug-develUpgrade kernel-debug-develUpgrade kernel-source-rtUpgrade ocfs2-kmp-64kbUpgrade dtb-alteraUpgrade cluster-md-kmp-azureUpgrade gfs2-kmp-64kbUpgrade ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade dtb-amazonUpgrade kernel-default-vdsoUpgrade dlm-kmp-64kbUpgrade dtb-broadcomUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-optionalUpgrade kernel-rt-optionalUpgrade dtb-caviumUpgrade kernel-source-vanillaUpgrade kernel-source-azureUpgrade kernel-sourceUpgrade kernel-default-livepatchUpgrade kernel-rt-vdsoUpgrade kernel-default-develUpgrade kernel-rt_debugUpgrade kernel-debugUpgrade kselftests-kmp-azureUpgrade gfs2-kmp-azureUpgrade dtb-hisiliconUpgrade kernel-64kbUpgrade kernel-default-baseUpgrade kernel-default-livepatch-develUpgrade dlm-kmp-defaultUpgrade kernel-rt_debug-vdsoUpgrade dtb-mediatekUpgrade dtb-rockchipUpgrade kselftests-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade dtb-xilinxUpgrade kselftests-kmp-rtUpgrade kernel-azure-vdsoUpgrade reiserfs-kmp-rtUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-rt-extraUpgrade kernel-debug-vdsoUpgrade kernel-obs-buildUpgrade kernel-default-optionalUpgrade kernel-default-manUpgrade kernel-syms-rtUpgrade kernel-docsUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-azure-develUpgrade ocfs2-kmp-azureUpgrade dtb-nvidiaUpgrade dlm-kmp-azureUpgrade dtb-qcomUpgrade cluster-md-kmp-64kbUpgrade kernel-64kb-develUpgrade kernel-rt-livepatchUpgrade dtb-socionextUpgrade kernel-defaultUpgrade kernel-rt-livepatch-develUpgrade dtb-renesasUpgrade dtb-apmUpgrade kernel-devel-rtUpgrade kernel-default-base-rebuildUpgrade dtb-amlogicUpgrade dtb-armUpgrade dlm-kmp-rtUpgrade reiserfs-kmp-azureUpgrade kernel-debug-livepatch-develUpgrade dtb-sprdUpgrade kernel-64kb-extraUpgrade kernel-devel | Jul 10, 2024 | Jun 25, 2024 |
| Ubuntu | — | Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-5.15.0-1102-realtimeUpgrade linux-image-gcp-5.15Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1044-nvidia-tegra-igx-rtUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1109-azureUpgrade linux-image-azure-fips-5.15Upgrade linux-image-ibm-classicUpgrade linux-image-ibmUpgrade linux-image-5.15.0-1055-nvidia-tegra-rtUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-ibm-5.15Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-1097-raspiUpgrade linux-image-5.15.0-1103-aws-fipsUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-173-lowlatencyUpgrade linux-image-5.15.0-1044-nvidia-tegra-igxUpgrade linux-image-5.15.0-1103-awsUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1095-kvmUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-virtualUpgrade linux-image-5.15.0-173-fipsUpgrade linux-image-6.8.0-1015-awsUpgrade linux-image-5.15.0-173-generic-lpaeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1012-oracle-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-6.8.0-1013-nvidiaUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-1097-ibmUpgrade linux-image-gke-5.15Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-fips-5.15Upgrade linux-image-awsUpgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-1013-nvidia-lowlatency-64kUpgrade linux-image-aws-fipsUpgrade linux-image-genericUpgrade linux-image-gkeUpgrade linux-image-oem-22.04Upgrade linux-image-generic-5.15Upgrade linux-image-realtimeUpgrade linux-image-nvidiaUpgrade linux-image-oracleUpgrade linux-image-aws-64k-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1014-azureUpgrade linux-image-6.8.0-44-generic-64kUpgrade linux-image-5.15.0-1103-gcpUpgrade linux-image-6.8.0-1010-gkeUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-fipsUpgrade linux-image-6.8.0-44-lowlatencyUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-5.15.0-1098-nvidiaUpgrade linux-image-6.8.0-45-generic-64kUpgrade linux-image-generic-64k-5.15Upgrade linux-image-5.15.0-1099-gkeUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-173-lowlatency-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-oracle-5.15Upgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1103-gcp-fipsUpgrade linux-image-virtual-5.15Upgrade linux-image-azureUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1012-ibmUpgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-1103-aws-64kUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1013-nvidia-lowlatencyUpgrade linux-image-5.15.0-1110-azureUpgrade linux-image-lowlatency-5.15Upgrade linux-image-azure-lts-22.04Upgrade linux-image-gcpUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-azure-fdeUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.15.0-1055-nvidia-tegraUpgrade linux-image-6.8.0-44-genericUpgrade linux-image-6.8.0-44-lowlatency-64kUpgrade linux-image-intelUpgrade linux-image-kvm-5.15Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1012-oracleUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-raspi-5.15Upgrade linux-image-nvidia-5.15Upgrade linux-image-6.8.0-45-genericUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-1014-azure-fdeUpgrade linux-image-6.8.0-1013-nvidia-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-azure-5.15Upgrade linux-image-kvmUpgrade linux-image-5.15.0-1109-azure-fipsUpgrade linux-image-5.15.0-173-generic-64kUpgrade linux-image-6.8.0-1014-gcpUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1011-raspiUpgrade linux-image-6.8.0-1012-oemUpgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1100-oracleUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1086-gkeopUpgrade linux-image-gcp-fipsUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.15.0-1098-nvidia-lowlatencyUpgrade linux-image-5.15.0-173-genericUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-5.15.0-1098-intel-iotgUpgrade linux-image-realtime-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1094-intel-iot-realtimeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-raspiUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-aws-fips-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-1067-xilinx-zynqmp | Sep 12, 2024 | Jun 25, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 10, 2025 | Jun 25, 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