In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix use-after-free when attempting to join an aborted transaction
When we are trying to join the current transaction and if it's aborted, we read its 'aborted' field after unlocking fs_info->trans_lock and without holding any extra reference count on it. This means that a concurrent task that is aborting the transaction may free the transaction before we read its 'aborted' field, leading to a use-after-free.
Fix this by reading the 'aborted' field while holding fs_info->trans_lock since any freeing task must first acquire that lock and set fs_info->running_transaction to NULL before freeing the transaction.
This was reported by syzbot and Dmitry with the following stack traces from KASAN:
================================================================== BUG: KASAN: slab-use-after-free in join_transaction+0xd9b/0xda0 fs/btrfs/transaction.c:278 Read of size 4 at addr ffff888011839024 by task kworker/u4:9/1128
CPU: 0 UID: 0 PID: 1128 Comm: kworker/u4:9 Not tainted 6.13.0-rc7-syzkaller-00019-gc45323b7560e #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Workqueue: events_unbound btrfs_async_reclaim_data_space Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0x169/0x550 mm/kasan/report.c:489 kasan_report+0x143/0x180 mm/kasan/report.c:602 join_transaction+0xd9b/0xda0 fs/btrfs/transaction.c:278 start_transaction+0xaf8/0x1670 fs/btrfs/transaction.c:697 flush_space+0x448/0xcf0 fs/btrfs/space-info.c:803 btrfs_async_reclaim_data_space+0x159/0x510 fs/btrfs/space-info.c:1321 process_one_work kernel/workqueue.c:3236 [inline] process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317 worker_thread+0x870/0xd30 kernel/workqueue.c:3398 kthread+0x2f0/0x390 kernel/kthread.c:389 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 </TASK>
Allocated by task 5315: kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 poison_kmalloc_redzone mm/kasan/common.c:377 [inline] __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:394 kasan_kmalloc include/linux/kasan.h:260 [inline] __kmalloc_cache_noprof+0x243/0x390 mm/slub.c:4329 kmalloc_noprof include/linux/slab.h:901 [inline] join_transaction+0x144/0xda0 fs/btrfs/transaction.c:308 start_transaction+0xaf8/0x1670 fs/btrfs/transaction.c:697 btrfs_create_common+0x1b2/0x2e0 fs/btrfs/inode.c:6572 lookup_open fs/namei.c:3649 [inline] open_last_lookups fs/namei.c:3748 [inline] path_openat+0x1c03/0x3590 fs/namei.c:3984 do_filp_open+0x27f/0x4e0 fs/namei.c:4014 do_sys_openat2+0x13e/0x1d0 fs/open.c:1402 do_sys_open fs/open.c:1417 [inline] __do_sys_creat fs/open.c:1495 [inline] __se_sys_creat fs/open.c:1489 [inline] __x64_sys_creat+0x123/0x170 fs/open.c:1489 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
Freed by task 5336: kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:582 poison_slab_object mm/kasan/common.c:247 [inline] __kasan_slab_free+0x59/0x70 mm/kasan/common.c:264 kasan_slab_free include/linux/kasan.h:233 [inline] slab_free_hook mm/slub.c:2353 [inline] slab_free mm/slub.c:4613 [inline] kfree+0x196/0x430 mm/slub.c:4761 cleanup_transaction fs/btrfs/transaction.c:2063 [inline] btrfs_commit_transaction+0x2c97/0x3720 fs/btrfs/transaction.c:2598 insert_balance_item+0x1284/0x20b0 fs/btrfs/volumes.c:3757 btrfs_balance+0x992/ ---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 Ami 2 | — | Upgrade kernel-toolsUpgrade kernel-livepatch-5.15.179-121.185Upgrade perf-debuginfoUpgrade kernel-livepatch-4.14.355-276.618Upgrade kernel-tools-develUpgrade kernel-livepatch-5.10.235-227.919Upgrade kernel-livepatch-4.14.355-275.572Upgrade kernel-develUpgrade kernel-livepatch-4.14.355-275.603Upgrade kernel-livepatch-4.14.355-275.582Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade kernelUpgrade bpftoolUpgrade python-perfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-headersUpgrade kernel-livepatch-4.14.355-275.591Upgrade bpftool-debuginfo | Apr 2, 2025 | Feb 27, 2025 |
| Amazon_linux | — | Upgrade kernel | Apr 18, 2025 | Feb 27, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-tools-develUpgrade kernel-develUpgrade perfUpgrade perf-debuginfoUpgrade kernel-modules-extraUpgrade kernel-libbpfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel-libbpf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-livepatch-6.1.127-135.201Upgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.128-136.201Upgrade kernel-livepatch-6.1.131-143.221Upgrade kernel-libbpf-staticUpgrade python3-perf-debuginfoUpgrade python3-perfUpgrade kernel-headersUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade kernel | Apr 2, 2025 | Feb 27, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Mar 17, 2025 | Feb 27, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Feb 27, 2025 |
| Suse | — | Upgrade kernel-docs-htmlUpgrade kernel-syms-azureUpgrade kernel-kvmsmallUpgrade kernel-rt-livepatch-develUpgrade kernel-obs-buildUpgrade kernel-rt_debug-develUpgrade kernel-sourceUpgrade dtb-freescaleUpgrade cluster-md-kmp-defaultUpgrade kernel-default-manUpgrade dtb-nvidiaUpgrade dtb-qcomUpgrade kernel-macrosUpgrade ocfs2-kmp-64kbUpgrade kernel-source-rtUpgrade kernel-rt_debugUpgrade kernel-defaultUpgrade kernel-rt-vdsoUpgrade kernel-default-livepatchUpgrade kernel-rt-optionalUpgrade kernel-rtUpgrade dlm-kmp-rtUpgrade dtb-rockchipUpgrade gfs2-kmp-defaultUpgrade dlm-kmp-64kbUpgrade reiserfs-kmp-rtUpgrade kernel-rt-extraUpgrade kselftests-kmp-rtUpgrade kernel-syms-rtUpgrade kernel-source-azureUpgrade dtb-sprdUpgrade kernel-azure-optionalUpgrade kernel-source-vanillaUpgrade kernel-debug-vdsoUpgrade reiserfs-kmp-64kbUpgrade kernel-azure-vdsoUpgrade kernel-devel-azureUpgrade cluster-md-kmp-64kbUpgrade kernel-azure-develUpgrade dtb-appleUpgrade kernel-azureUpgrade kernel-default-base-rebuildUpgrade kernel-rt_debug-vdsoUpgrade dtb-marvellUpgrade kernel-azure-extraUpgrade dtb-socionextUpgrade dtb-lgUpgrade dtb-alteraUpgrade dtb-amlogicUpgrade kernel-64kb-extraUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade dlm-kmp-defaultUpgrade dtb-broadcomUpgrade kernel-default-livepatch-develUpgrade kernel-devel-rtUpgrade kernel-default-vdsoUpgrade reiserfs-kmp-defaultUpgrade dtb-caviumUpgrade cluster-md-kmp-rtUpgrade gfs2-kmp-64kbUpgrade dlm-kmp-azureUpgrade kernel-zfcpdumpUpgrade kernel-docsUpgrade kselftests-kmp-64kbUpgrade dtb-xilinxUpgrade ocfs2-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-debugUpgrade kernel-64kb-develUpgrade dtb-hisiliconUpgrade dtb-exynosUpgrade dtb-amdUpgrade ocfs2-kmp-rtUpgrade kernel-64kbUpgrade dtb-allwinnerUpgrade kernel-default-extraUpgrade kselftests-kmp-defaultUpgrade kernel-rt-develUpgrade kernel-debug-develUpgrade dtb-renesasUpgrade dtb-armUpgrade gfs2-kmp-rtUpgrade dtb-amazonUpgrade kernel-symsUpgrade reiserfs-kmp-azureUpgrade dtb-mediatekUpgrade kernel-default-optionalUpgrade ocfs2-kmp-defaultUpgrade dtb-apmUpgrade cluster-md-kmp-azureUpgrade kernel-kvmsmall-develUpgrade gfs2-kmp-azureUpgrade kernel-default-develUpgrade kernel-develUpgrade kernel-default-baseUpgrade kernel-64kb-optional | Mar 12, 2025 | Feb 27, 2025 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1037-nvidia-tegraUpgrade linux-image-6.11.0-26-genericUpgrade linux-image-bluefieldUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidiaUpgrade linux-image-5.15.0-140-lowlatencyUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-nvidia-tegraUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.1-1025-realtimeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-24.04bUpgrade linux-image-6.8.0-1029-ibmUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-140-lowlatency-64kUpgrade linux-image-5.15.0-1081-gkeUpgrade linux-image-azure-nvidia-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1031-nvidia-lowlatencyUpgrade linux-image-6.8.0-64-genericUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-1083-gcpUpgrade linux-image-5.15.0-1026-nvidia-tegra-igxUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1015-gkeopUpgrade linux-image-gkeUpgrade linux-image-azure-lts-20.04Upgrade linux-image-lowlatencyUpgrade linux-image-5.4.0-1092-ibmUpgrade linux-image-6.8.0-1031-nvidia-64kUpgrade linux-image-aws-6.8Upgrade linux-image-fipsUpgrade linux-image-6.8.0-1022-azure-nvidiaUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.11.0-1015-azureUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-ibmUpgrade linux-image-oemUpgrade linux-image-aws-lts-22.04Upgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-6.8.0-1031-raspiUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.4.0-216-genericUpgrade linux-image-virtualUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-aws-64kUpgrade linux-image-5.4.0-1146-awsUpgrade linux-image-generic-lpaeUpgrade linux-image-intel-iotgUpgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-5.15.0-1084-realtimeUpgrade linux-image-5.15.0-1078-nvidiaUpgrade linux-image-5.4.0-1149-gcp-fipsUpgrade linux-image-generic-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gkeopUpgrade linux-image-azure-lts-24.04Upgrade linux-image-5.4.0-1133-kvmUpgrade linux-image-6.11.0-1022-oemUpgrade linux-image-5.4.0-216-lowlatencyUpgrade linux-image-azure-6.8Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-oem-20.04bUpgrade linux-image-oem-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-oem-22.04cUpgrade linux-image-5.4.0-1149-gcpUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-azure-nvidiaUpgrade linux-image-5.4.0-1144-oracleUpgrade linux-image-aws-lts-20.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-6.8.0-1029-oracleUpgrade linux-image-5.15.0-142-generic-lpaeUpgrade linux-image-oem-24.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-5.15.0-1089-azure-fipsUpgrade linux-image-gcp-fipsUpgrade linux-image-lowlatency-64kUpgrade linux-image-intelUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-raspi-nolpaeUpgrade linux-image-genericUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.11.0-1014-awsUpgrade linux-image-6.8.0-1031-oemUpgrade linux-image-5.15.0-140-generic-64kUpgrade linux-image-5.15.0-1089-azureUpgrade linux-image-raspi2Upgrade linux-image-5.4.0-1151-azure-fipsUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-virtual-6.8Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-1079-intel-iotgUpgrade linux-image-5.15.0-1081-oracleUpgrade linux-image-5.15.0-140-genericUpgrade linux-image-6.8.0-1032-aws-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-azure-cvmUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1084-awsUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-142-generic-64kUpgrade linux-image-6.8.0-1029-oracle-64kUpgrade linux-image-gcp-64kUpgrade linux-image-5.4.0-1146-aws-fipsUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-64-lowlatency-64kUpgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-5.15.0-1080-kvmUpgrade linux-image-5.15.0-1084-aws-fipsUpgrade linux-image-gke-6.8Upgrade linux-image-5.4.0-1151-azureUpgrade linux-image-5.15.0-1026-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-64-lowlatencyUpgrade linux-image-5.4.0-1064-xilinx-zynqmpUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-ibm-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-5.4.0-1120-fipsUpgrade linux-image-5.4.0-1051-iotUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gcp-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-azureUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-raspi-realtimeUpgrade linux-image-oem-22.04bUpgrade linux-image-oem-22.04dUpgrade linux-image-generic-6.8Upgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-5.15.0-1077-intel-iot-realtimeUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-140-generic-lpaeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1033-gcp-64kUpgrade linux-image-5.15.0-142-genericUpgrade linux-image-5.15.0-140-fipsUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-gkeop-5.15Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-5.15.0-1083-gcp-fipsUpgrade linux-image-5.15.0-1050-xilinx-zynqmpUpgrade linux-image-6.8.0-1031-nvidiaUpgrade linux-image-5.4.0-216-generic-lpaeUpgrade linux-image-5.4.0-1105-bluefieldUpgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1033-gcpUpgrade linux-image-awsUpgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1031-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-64-generic-64kUpgrade linux-image-5.15.0-1076-ibmUpgrade linux-image-gcpUpgrade linux-image-6.8.0-2026-raspi-realtimeUpgrade linux-image-raspiUpgrade linux-image-oracleUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-1034-azure-fdeUpgrade linux-image-oem-osp1Upgrade linux-image-oem-20.04dUpgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1032-awsUpgrade linux-image-5.15.0-1078-nvidia-lowlatencyUpgrade linux-image-6.8.0-1028-gkeUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-raspi-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-realtimeUpgrade linux-image-5.15.0-1078-raspiUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.8.0-1034-azureUpgrade linux-image-5.15.0-1037-nvidia-tegra-rtUpgrade linux-image-5.15.0-1066-gkeopUpgrade linux-image-oracle-lts-22.04 | May 20, 2025 | Feb 27, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 2, 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