In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix assertion failure when splitting ordered extent after transaction abort
If while we are doing a direct IO write a transaction abort happens, we mark all existing ordered extents with the BTRFS_ORDERED_IOERR flag (done at btrfs_destroy_ordered_extents()), and then after that if we enter btrfs_split_ordered_extent() and the ordered extent has bytes left (meaning we have a bio that doesn't cover the whole ordered extent, see details at btrfs_extract_ordered_extent()), we will fail on the following assertion at btrfs_split_ordered_extent():
ASSERT(!(flags & ~BTRFS_ORDERED_TYPE_FLAGS));
because the BTRFS_ORDERED_IOERR flag is set and the definition of BTRFS_ORDERED_TYPE_FLAGS is just the union of all flags that identify the type of write (regular, nocow, prealloc, compressed, direct IO, encoded).
Fix this by returning an error from btrfs_extract_ordered_extent() if we find the BTRFS_ORDERED_IOERR flag in the ordered extent. The error will be the error that resulted in the transaction abort or -EIO if no transaction abort happened.
This was recently reported by syzbot with the following trace:
FAULT_INJECTION: forcing a failure. name failslab, interval 1, probability 0, space 0, times 1 CPU: 0 UID: 0 PID: 5321 Comm: syz.0.0 Not tainted 6.13.0-rc5-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 fail_dump lib/fault-inject.c:53 [inline] should_fail_ex+0x3b0/0x4e0 lib/fault-inject.c:154 should_failslab+0xac/0x100 mm/failslab.c:46 slab_pre_alloc_hook mm/slub.c:4072 [inline] slab_alloc_node mm/slub.c:4148 [inline] __do_kmalloc_node mm/slub.c:4297 [inline] __kmalloc_noprof+0xdd/0x4c0 mm/slub.c:4310 kmalloc_noprof include/linux/slab.h:905 [inline] kzalloc_noprof include/linux/slab.h:1037 [inline] btrfs_chunk_alloc_add_chunk_item+0x244/0x1100 fs/btrfs/volumes.c:5742 reserve_chunk_space+0x1ca/0x2c0 fs/btrfs/block-group.c:4292 check_system_chunk fs/btrfs/block-group.c:4319 [inline] do_chunk_alloc fs/btrfs/block-group.c:3891 [inline] btrfs_chunk_alloc+0x77b/0xf80 fs/btrfs/block-group.c:4187 find_free_extent_update_loop fs/btrfs/extent-tree.c:4166 [inline] find_free_extent+0x42d1/0x5810 fs/btrfs/extent-tree.c:4579 btrfs_reserve_extent+0x422/0x810 fs/btrfs/extent-tree.c:4672 btrfs_new_extent_direct fs/btrfs/direct-io.c:186 [inline] btrfs_get_blocks_direct_write+0x706/0xfa0 fs/btrfs/direct-io.c:321 btrfs_dio_iomap_begin+0xbb7/0x1180 fs/btrfs/direct-io.c:525 iomap_iter+0x697/0xf60 fs/iomap/iter.c:90 __iomap_dio_rw+0xeb9/0x25b0 fs/iomap/direct-io.c:702 btrfs_dio_write fs/btrfs/direct-io.c:775 [inline] btrfs_direct_write+0x610/0xa30 fs/btrfs/direct-io.c:880 btrfs_do_write_iter+0x2a0/0x760 fs/btrfs/file.c:1397 do_iter_readv_writev+0x600/0x880 vfs_writev+0x376/0xba0 fs/read_write.c:1050 do_pwritev fs/read_write.c:1146 [inline] __do_sys_pwritev2 fs/read_write.c:1204 [inline] __se_sys_pwritev2+0x196/0x2b0 fs/read_write.c:1195 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f1281f85d29 RSP: 002b:00007f12819fe038 EFLAGS: 00000246 ORIG_RAX: 0000000000000148 RAX: ffffffffffffffda RBX: 00007f1282176080 RCX: 00007f1281f85d29 RDX: 0000000000000001 RSI: 0000000020000240 RDI: 0000000000000005 RBP: 00007f12819fe090 R08: 0000000000000000 R09: 0000000000000003 R10: 0000000000007000 R11: 0000000000000246 R12: 0000000000000002 R13: 0000000000000000 R14: 00007f1282176080 R15: 00007ffcb9e23328 </TASK> BTRFS error (device loop0 state A): Transaction aborted (error -12) BTRFS: error (device loop0 state A ---truncated---
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | — | Jul 9, 2025 | Feb 27, 2025 |
| Suse | — | Upgrade dtb-caviumUpgrade dtb-xilinxUpgrade kernel-obs-buildUpgrade kselftests-kmp-azureUpgrade ocfs2-kmp-azureUpgrade kernel-source-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-rt_debug-develUpgrade dtb-nvidiaUpgrade reiserfs-kmp-defaultUpgrade dtb-broadcomUpgrade kernel-rt-extraUpgrade dlm-kmp-rtUpgrade kernel-azure-optionalUpgrade kernel-64kb-extraUpgrade gfs2-kmp-azureUpgrade kernel-develUpgrade kernel-64kb-develUpgrade dtb-amdUpgrade kernel-debugUpgrade dlm-kmp-64kbUpgrade kernel-debug-vdsoUpgrade kernel-debug-develUpgrade dtb-alteraUpgrade cluster-md-kmp-rtUpgrade kernel-rt-vdsoUpgrade gfs2-kmp-defaultUpgrade kernel-azureUpgrade dtb-allwinnerUpgrade kernel-azure-extraUpgrade kernel-rt-optionalUpgrade ocfs2-kmp-64kbUpgrade kernel-default-baseUpgrade kernel-source-azureUpgrade kernel-source-vanillaUpgrade reiserfs-kmp-64kbUpgrade kernel-default-vdsoUpgrade kernel-default-livepatchUpgrade cluster-md-kmp-64kbUpgrade kernel-default-livepatch-develUpgrade dtb-rockchipUpgrade kernel-default-optionalUpgrade kernel-docs-htmlUpgrade dtb-hisiliconUpgrade dtb-exynosUpgrade dtb-freescaleUpgrade dtb-sprdUpgrade kernel-rt-develUpgrade kselftests-kmp-64kbUpgrade dtb-renesasUpgrade dtb-lgUpgrade kernel-defaultUpgrade kernel-64kb-optionalUpgrade kselftests-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-obs-qaUpgrade kernel-devel-rtUpgrade kernel-syms-azureUpgrade cluster-md-kmp-azureUpgrade reiserfs-kmp-azureUpgrade kernel-symsUpgrade kernel-kvmsmall-vdsoUpgrade dtb-marvellUpgrade dtb-apmUpgrade dtb-qcomUpgrade kernel-macrosUpgrade kernel-syms-rtUpgrade kernel-sourceUpgrade kernel-rtUpgrade kernel-kvmsmall-develUpgrade kernel-azure-vdsoUpgrade dtb-amlogicUpgrade kernel-64kbUpgrade kernel-azure-develUpgrade dtb-mediatekUpgrade kernel-rt_debugUpgrade kernel-kvmsmallUpgrade reiserfs-kmp-rtUpgrade ocfs2-kmp-rtUpgrade dtb-amazonUpgrade kernel-devel-azureUpgrade dtb-appleUpgrade dlm-kmp-defaultUpgrade dlm-kmp-azureUpgrade kernel-zfcpdumpUpgrade dtb-armUpgrade dtb-socionextUpgrade kernel-docsUpgrade kernel-default-base-rebuildUpgrade kselftests-kmp-defaultUpgrade kernel-rt-livepatch-develUpgrade gfs2-kmp-rtUpgrade gfs2-kmp-64kbUpgrade kernel-default-develUpgrade kernel-default-extraUpgrade cluster-md-kmp-default | Mar 13, 2025 | Feb 27, 2025 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1034-azure-fdeUpgrade linux-image-aws-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-gkeUpgrade linux-image-6.8.0-1031-nvidiaUpgrade linux-image-6.8.0-1033-gcpUpgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-azure-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-aws-lts-24.04Upgrade linux-image-gcp-6.8Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1032-aws-64kUpgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-1032-awsUpgrade linux-image-kvmUpgrade linux-image-6.8.0-64-lowlatencyUpgrade linux-image-6.8.0-1015-gkeopUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-realtimeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-6.11.0-26-genericUpgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-6.8.0-1029-oracle-64kUpgrade linux-image-6.8.0-1028-gkeUpgrade linux-image-awsUpgrade linux-image-6.8.0-64-lowlatency-64kUpgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1031-raspiUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1029-ibmUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-virtualUpgrade linux-image-6.8.0-1031-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1031-nvidia-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-64-genericUpgrade linux-image-nvidia-6.8Upgrade linux-image-oem-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1029-oracleUpgrade linux-image-6.8.0-1031-nvidia-lowlatencyUpgrade linux-image-oracleUpgrade linux-image-6.8.0-64-generic-64kUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-ibm-classicUpgrade linux-image-generic-64kUpgrade linux-image-azureUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-6.11.0-1015-azureUpgrade linux-image-6.8.0-1022-azure-nvidiaUpgrade linux-image-6.8.0-1033-gcp-64kUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-aws-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-gkeopUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oem-24.04bUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-generic-lpaeUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-raspiUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-virtual-6.8Upgrade linux-image-oem-22.04bUpgrade linux-image-lowlatencyUpgrade linux-image-azure-nvidia-6.8Upgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-generic-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-azure-nvidiaUpgrade linux-image-genericUpgrade linux-image-6.8.0-1031-oemUpgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-ibm-6.8Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.8.0-1034-azureUpgrade linux-image-oem-6.8Upgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-6.11.0-1022-oemUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.11.0-1014-awsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-2026-raspi-realtimeUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.1-1025-realtimeUpgrade linux-image-aws-64k-6.8Upgrade linux-image-gke-6.8 | May 21, 2025 | Feb 27, 2025 |
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