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 python3-perf-debuginfoUpgrade kernel-livepatch-6.1.94-99.176Upgrade bpftoolUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfo-common-aarch64Upgrade bpftool-debuginfoUpgrade perfUpgrade kernel-toolsUpgrade perf-debuginfoUpgrade kernel-develUpgrade kernel-libbpf-staticUpgrade kernel-tools-debuginfoUpgrade kernel-headersUpgrade python3-perfUpgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade kernel-libbpfUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modules-extraUpgrade kernel | 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 ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade dtb-exynosUpgrade gfs2-kmp-64kbUpgrade kernel-default-vdsoUpgrade kernel-azure-baseUpgrade kernel-devel-azureUpgrade cluster-md-kmp-azureUpgrade dtb-amazonUpgrade kernel-source-azureUpgrade gfs2-kmp-rtUpgrade kernel-azure-optionalUpgrade dtb-freescaleUpgrade dtb-lgUpgrade kernel-64kb-livepatch-develUpgrade kselftests-kmp-64kbUpgrade dtb-marvellUpgrade ocfs2-kmp-defaultUpgrade kernel-source-rtUpgrade ocfs2-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade dtb-allwinnerUpgrade cluster-md-kmp-rtUpgrade kselftests-kmp-azureUpgrade dtb-caviumUpgrade kernel-rt_debugUpgrade kernel-64kb-optionalUpgrade kernel-default-develUpgrade kernel-default-livepatchUpgrade kernel-rt-vdsoUpgrade dtb-alteraUpgrade kernel-symsUpgrade kernel-azureUpgrade kernel-default-extraUpgrade kernel-azure-livepatch-develUpgrade dtb-hisiliconUpgrade dlm-kmp-64kbUpgrade kernel-debugUpgrade kernel-azure-extraUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-64kbUpgrade kernel-debug-develUpgrade kernel-kvmsmallUpgrade kernel-source-vanillaUpgrade gfs2-kmp-azureUpgrade kernel-rt-optionalUpgrade kernel-kvmsmall-develUpgrade kernel-docs-htmlUpgrade kernel-macrosUpgrade dtb-broadcomUpgrade kernel-rt_debug-develUpgrade kernel-obs-qaUpgrade kernel-syms-azureUpgrade reiserfs-kmp-64kbUpgrade dtb-amdUpgrade kernel-sourceUpgrade dtb-appleUpgrade kernel-kvmsmall-vdsoUpgrade kselftests-kmp-rtUpgrade kernel-default-optionalUpgrade kernel-debug-vdsoUpgrade kernel-64kb-develUpgrade dtb-apmUpgrade dtb-rockchipUpgrade kernel-defaultUpgrade kernel-default-livepatch-develUpgrade cluster-md-kmp-defaultUpgrade kernel-azure-vdsoUpgrade gfs2-kmp-defaultUpgrade dtb-xilinxUpgrade kernel-default-base-rebuildUpgrade kernel-default-manUpgrade dlm-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade dtb-amlogicUpgrade kernel-rt-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade kernel-develUpgrade kernel-64kb-extraUpgrade dtb-sprdUpgrade dtb-armUpgrade kernel-syms-rtUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-docsUpgrade kernel-devel-rtUpgrade dtb-socionextUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-azure-develUpgrade ocfs2-kmp-azureUpgrade kernel-rt-livepatchUpgrade dtb-qcomUpgrade dlm-kmp-azureUpgrade dtb-nvidiaUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-develUpgrade kernel-rtUpgrade reiserfs-kmp-rtUpgrade dtb-mediatekUpgrade dlm-kmp-defaultUpgrade kselftests-kmp-defaultUpgrade dtb-renesasUpgrade reiserfs-kmp-azureUpgrade kernel-default-base | Jul 10, 2024 | Jun 25, 2024 |
| Ubuntu | — | Upgrade linux-image-generic-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1013-nvidia-lowlatency-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-6.8.0-1013-nvidiaUpgrade linux-image-fips-5.15Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-5.15.0-1102-realtimeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-azure-fips-5.15Upgrade linux-image-5.15.0-1098-nvidiaUpgrade linux-image-oracleUpgrade linux-image-5.15.0-1044-nvidia-tegra-igx-rtUpgrade linux-image-oem-22.04aUpgrade linux-image-ibm-5.15Upgrade linux-image-nvidiaUpgrade linux-image-aws-fipsUpgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-173-fipsUpgrade linux-image-5.15.0-1109-azureUpgrade linux-image-gcp-5.15Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-6.8.0-1014-azureUpgrade linux-image-aws-64k-5.15Upgrade linux-image-6.8.0-44-lowlatencyUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-6.8.0-1015-awsUpgrade linux-image-awsUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-44-generic-64kUpgrade linux-image-6.8.0-1010-gkeUpgrade linux-image-5.15.0-1103-gcpUpgrade linux-image-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-173-lowlatencyUpgrade linux-image-genericUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-gkeUpgrade linux-image-5.15.0-1044-nvidia-tegra-igxUpgrade linux-image-raspi-nolpaeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1012-oracle-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1103-awsUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-ibmUpgrade linux-image-5.15.0-1103-aws-fipsUpgrade linux-image-realtimeUpgrade linux-image-5.15.0-173-generic-lpaeUpgrade linux-image-5.15.0-1097-ibmUpgrade linux-image-5.15.0-1095-kvmUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-virtualUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-5.15.0-1055-nvidia-tegra-rtUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-1097-raspiUpgrade linux-image-fipsUpgrade linux-image-oem-20.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-oem-22.04bUpgrade linux-image-generic-64k-5.15Upgrade linux-image-6.8.0-1012-oracleUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-gkeopUpgrade linux-image-oem-20.04cUpgrade linux-image-raspi-5.15Upgrade linux-image-5.15.0-1098-nvidia-lowlatencyUpgrade linux-image-5.15.0-1103-aws-64kUpgrade linux-image-6.8.0-1012-ibmUpgrade linux-image-oem-22.04dUpgrade linux-image-aws-fips-5.15Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-oracle-5.15Upgrade linux-image-5.15.0-1109-azure-fipsUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.15.0-1067-xilinx-zynqmpUpgrade linux-image-5.15.0-173-lowlatency-64kUpgrade linux-image-5.15.0-1100-oracleUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-raspiUpgrade linux-image-gcpUpgrade linux-image-oem-20.04dUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1013-nvidia-lowlatencyUpgrade linux-image-5.15.0-1098-intel-iotgUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-5.15.0-1103-gcp-fipsUpgrade linux-image-azureUpgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-virtual-5.15Upgrade linux-image-6.8.0-1014-azure-fdeUpgrade linux-image-realtime-5.15Upgrade linux-image-gkeop-5.15Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1094-intel-iot-realtimeUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-45-genericUpgrade linux-image-azure-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1110-azureUpgrade linux-image-nvidia-tegraUpgrade linux-image-intelUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-5.15.0-173-generic-64kUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1086-gkeopUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-azure-fdeUpgrade linux-image-lowlatency-5.15Upgrade linux-image-6.8.0-44-genericUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1055-nvidia-tegraUpgrade linux-image-6.8.0-1013-nvidia-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-45-generic-64kUpgrade linux-image-5.15.0-173-genericUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1012-oemUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1014-gcpUpgrade linux-image-kvm-5.15Upgrade linux-image-6.8.0-1011-raspiUpgrade linux-image-5.15.0-1099-gkeUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-44-lowlatency-64k | 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