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