In the Linux kernel, the following vulnerability has been resolved:
btrfs: reject new transactions if the fs is fully read-only
[BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:
BTRFS: Transaction aborted (error -22) Modules linked in: CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted 6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline] RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611 Call Trace: <TASK> btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705 btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157 btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517 btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708 btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130 btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499 btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628 evict+0x5f4/0xae0 fs/inode.c:837 __dentry_kill+0x209/0x660 fs/dcache.c:670 finish_dput+0xc9/0x480 fs/dcache.c:879 shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661 generic_shutdown_super+0x67/0x2c0 fs/super.c:621 kill_anon_super+0x3b/0x70 fs/super.c:1289 btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127 deactivate_locked_super+0xbc/0x130 fs/super.c:474 cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318 task_work_run+0x1d4/0x260 kernel/task_work.c:233 exit_task_work include/linux/task_work.h:40 [inline] do_exit+0x694/0x22f0 kernel/exit.c:971 do_group_exit+0x21c/0x2d0 kernel/exit.c:1112 __do_sys_exit_group kernel/exit.c:1123 [inline] __se_sys_exit_group kernel/exit.c:1121 [inline] __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121 x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x44f639 Code: Unable to access opcode bytes at 0x44f60f. RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7 RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639 RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001 RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0 R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001 </TASK>
Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.
But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.
[CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.
However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.
[FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.
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 |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.12-libbpf-staticUpgrade kernel6.12-tools-debuginfoUpgrade bpftool6.12Upgrade python3-perf6.12-debuginfoUpgrade kernel6.12-libbpfUpgrade kernel6.12-libbpf-develUpgrade kernel6.12-libbpf-debuginfoUpgrade perf6.12Upgrade kernel6.12-modules-extraUpgrade kernel6.12-modules-extra-commonUpgrade kernel6.12-debuginfoUpgrade kernel6.12-tools-develUpgrade bpftool6.12-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-toolsUpgrade kernel-livepatch-6.12.73-95.123Upgrade python3-perf6.12Upgrade kernel6.12Upgrade perf6.12-debuginfoUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-headersUpgrade kernel6.12-devel | Mar 27, 2026 | Feb 18, 2026 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Oracle_linux | — | Upgrade kernel-uek | Mar 25, 2026 | Feb 18, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Feb 18, 2026 |
| Ubuntu | — | Upgrade linux-image-aws-fipsUpgrade linux-image-azureUpgrade linux-image-genericUpgrade linux-image-generic-64kUpgrade linux-image-gkeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-nvidiaUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-ibmUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-6.8.0-1056-raspiUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-6.8.0-2045-raspi-realtimeUpgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1055-ibmUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1059-azure-fipsUpgrade linux-image-fipsUpgrade linux-image-6.8.0-1054-gkeUpgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-6.8.0-1055-awsUpgrade linux-image-6.8.0-1058-gcp-fipsUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-116-fipsUpgrade linux-image-azure-lts-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-117-lowlatency-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-6.8.0-1024-nvidia-tegra-rtUpgrade linux-image-6.8.0-1054-nvidiaUpgrade linux-image-intel-iotgUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-gkeopUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-117-lowlatencyUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-lowlatency-64kUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1055-aws-64kUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1056-azureUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1058-gcp-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1054-nvidia-64kUpgrade linux-image-6.8.0-117-genericUpgrade linux-image-6.8.0-117-generic-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-virtual-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-fips-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-gke-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-fipsUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1059-azureUpgrade linux-image-kvmUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1054-nvidia-lowlatency-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1055-aws-fipsUpgrade linux-image-xilinxUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-1058-gcpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1054-gke-64kUpgrade linux-image-6.8.0-1024-nvidia-tegraUpgrade linux-image-realtime-6.8.1Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-realtimeUpgrade linux-image-aws-64k-6.8Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1054-nvidia-lowlatencyUpgrade linux-image-raspi-6.8Upgrade linux-image-6.8.1-1051-realtimeUpgrade linux-image-6.8.0-1041-gkeop | May 25, 2026 | May 19, 2026 |
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