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