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---
| 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 cluster-md-kmp-rtUpgrade dlm-kmp-64kbUpgrade gfs2-kmp-defaultUpgrade kernel-debugUpgrade kernel-debug-vdsoUpgrade kernel-defaultUpgrade kernel-64kb-develUpgrade kernel-64kb-extraUpgrade gfs2-kmp-azureUpgrade kernel-develUpgrade dtb-sprdUpgrade dtb-exynosUpgrade dtb-amdUpgrade kernel-docs-htmlUpgrade ocfs2-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-rt-vdsoUpgrade kernel-default-optionalUpgrade dtb-allwinnerUpgrade dtb-alteraUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-optionalUpgrade kernel-azureUpgrade kernel-default-livepatch-develUpgrade kernel-default-vdsoUpgrade kernel-source-vanillaUpgrade reiserfs-kmp-64kbUpgrade kernel-source-azureUpgrade dtb-nvidiaUpgrade kernel-obs-buildUpgrade dtb-caviumUpgrade dtb-renesasUpgrade dtb-broadcomUpgrade kernel-rt-develUpgrade dtb-xilinxUpgrade kselftests-kmp-64kbUpgrade kernel-azure-optionalUpgrade dtb-freescaleUpgrade dtb-rockchipUpgrade dtb-hisiliconUpgrade kernel-source-rtUpgrade kselftests-kmp-azureUpgrade kernel-rt_debug-develUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-azure-extraUpgrade dtb-lgUpgrade ocfs2-kmp-defaultUpgrade kernel-debug-develUpgrade kernel-default-baseUpgrade dlm-kmp-rtUpgrade kernel-rt-extraUpgrade dtb-socionextUpgrade kernel-azure-vdsoUpgrade dtb-amlogicUpgrade kernel-syms-rtUpgrade kernel-rt_debug-vdsoUpgrade kselftests-kmp-rtUpgrade kernel-syms-azureUpgrade reiserfs-kmp-azureUpgrade kernel-devel-rtUpgrade kernel-64kb-optionalUpgrade cluster-md-kmp-defaultUpgrade cluster-md-kmp-azureUpgrade kernel-default-extraUpgrade kernel-obs-qaUpgrade dtb-appleUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-rt-livepatch-develUpgrade kernel-default-base-rebuildUpgrade gfs2-kmp-rtUpgrade gfs2-kmp-64kbUpgrade dlm-kmp-azureUpgrade kernel-rt_debugUpgrade kernel-macrosUpgrade kernel-azure-develUpgrade kernel-64kbUpgrade dtb-mediatekUpgrade kernel-devel-azureUpgrade kernel-default-develUpgrade kernel-zfcpdumpUpgrade dtb-armUpgrade ocfs2-kmp-rtUpgrade dtb-qcomUpgrade dtb-marvellUpgrade dtb-apmUpgrade kernel-symsUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docsUpgrade dtb-amazonUpgrade kernel-kvmsmallUpgrade kernel-sourceUpgrade kernel-rtUpgrade kernel-kvmsmall-devel | Mar 13, 2025 | Feb 27, 2025 |
| Ubuntu | — | Upgrade linux-image-lowlatency-6.8Upgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-6.8.0-1029-oracle-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-6.11.0-26-genericUpgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1028-gkeUpgrade linux-image-realtimeUpgrade linux-image-6.8.0-1029-oracleUpgrade linux-image-6.8.0-1034-azure-fdeUpgrade linux-image-azure-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1031-raspiUpgrade linux-image-awsUpgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-oracle-64kUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1031-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1015-gkeopUpgrade linux-image-6.8.0-64-lowlatencyUpgrade linux-image-aws-64kUpgrade linux-image-6.8.0-64-genericUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1031-nvidiaUpgrade linux-image-6.8.0-1031-nvidia-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-64-lowlatency-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-1029-ibmUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-64-generic-64kUpgrade linux-image-kvmUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1032-awsUpgrade linux-image-6.8.0-1033-gcpUpgrade linux-image-6.8.0-1032-aws-64kUpgrade linux-image-azure-fde-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1031-nvidia-lowlatencyUpgrade linux-image-oem-22.04dUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-generic-64kUpgrade linux-image-ibmUpgrade linux-image-raspi-realtimeUpgrade linux-image-gke-6.8Upgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-6.8.1-1025-realtimeUpgrade linux-image-6.8.0-2026-raspi-realtimeUpgrade linux-image-aws-64k-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-oem-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1031-oemUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-genericUpgrade linux-image-azure-nvidiaUpgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-ibm-classicUpgrade linux-image-azure-fdeUpgrade linux-image-gkeopUpgrade linux-image-virtual-6.8Upgrade linux-image-6.11.0-1015-azureUpgrade linux-image-oem-24.04bUpgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-azure-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-azureUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-1033-gcp-64kUpgrade linux-image-6.11.0-1014-awsUpgrade linux-image-6.8.0-1022-azure-nvidiaUpgrade linux-image-generic-lpaeUpgrade linux-image-azure-nvidia-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-gcpUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-aws-6.8Upgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-nvidiaUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-generic-6.8Upgrade linux-image-raspiUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-6.8.0-1034-azureUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-6.11.0-1022-oem | May 21, 2025 | Feb 27, 2025 |
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