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-livepatch-4.14.355-276.618Upgrade kernel-tools-develUpgrade kernel-toolsUpgrade kernel-livepatch-4.14.355-275.572Upgrade kernel-livepatch-5.10.235-227.919Upgrade kernel-livepatch-4.14.355-275.582Upgrade kernel-livepatch-5.15.179-121.185Upgrade kernel-livepatch-4.14.355-275.603Upgrade perfUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade kernelUpgrade kernel-livepatch-4.14.355-275.591Upgrade bpftool-debuginfoUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade python-perfUpgrade kernel-headers | Apr 2, 2025 | Feb 27, 2025 |
| Amazon_linux | — | Upgrade kernel | Apr 18, 2025 | Feb 27, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-develUpgrade kernel-toolsUpgrade perf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-libbpf-debuginfoUpgrade kernel-livepatch-6.1.131-143.221Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.1.128-136.201Upgrade kernel-libbpfUpgrade perfUpgrade kernel-livepatch-6.1.127-135.201Upgrade python3-perf-debuginfoUpgrade bpftoolUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-headersUpgrade python3-perfUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfoUpgrade kernel-libbpf-static | Apr 2, 2025 | Feb 27, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Mar 17, 2025 | Feb 27, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Feb 27, 2025 |
| Suse | — | Upgrade dtb-amazonUpgrade dtb-armUpgrade dtb-renesasUpgrade gfs2-kmp-rtUpgrade kernel-debug-develUpgrade kernel-rt-develUpgrade kselftests-kmp-defaultUpgrade gfs2-kmp-azureUpgrade kernel-symsUpgrade dtb-hisiliconUpgrade ocfs2-kmp-azureUpgrade dtb-allwinnerUpgrade dtb-exynosUpgrade kernel-64kbUpgrade kernel-64kb-develUpgrade dtb-amdUpgrade kernel-debugUpgrade kernel-kvmsmall-develUpgrade kernel-obs-qaUpgrade kernel-default-develUpgrade dtb-caviumUpgrade kernel-default-extraUpgrade kernel-develUpgrade cluster-md-kmp-azureUpgrade kernel-default-optionalUpgrade ocfs2-kmp-defaultUpgrade kernel-64kb-optionalUpgrade kernel-default-vdsoUpgrade dtb-mediatekUpgrade kernel-default-livepatch-develUpgrade reiserfs-kmp-azureUpgrade kselftests-kmp-64kbUpgrade dtb-xilinxUpgrade dtb-apmUpgrade kernel-default-baseUpgrade gfs2-kmp-64kbUpgrade kernel-devel-rtUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade kernel-docsUpgrade ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade kernel-source-rtUpgrade dtb-qcomUpgrade kernel-obs-buildUpgrade kernel-source-azureUpgrade kselftests-kmp-azureUpgrade kernel-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt_debugUpgrade kernel-rt-vdsoUpgrade kernel-rt-optionalUpgrade gfs2-kmp-defaultUpgrade kernel-sourceUpgrade kernel-rt_debug-develUpgrade kernel-macrosUpgrade dtb-freescaleUpgrade cluster-md-kmp-defaultUpgrade ocfs2-kmp-64kbUpgrade kernel-syms-azureUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-azure-optionalUpgrade reiserfs-kmp-64kbUpgrade kselftests-kmp-rtUpgrade kernel-rt-extraUpgrade dlm-kmp-64kbUpgrade kernel-docs-htmlUpgrade dtb-nvidiaUpgrade kernel-default-manUpgrade reiserfs-kmp-rtUpgrade dlm-kmp-defaultUpgrade dtb-appleUpgrade dtb-alteraUpgrade kernel-default-base-rebuildUpgrade cluster-md-kmp-64kbUpgrade dtb-lgUpgrade kernel-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-azure-extraUpgrade dtb-marvellUpgrade dtb-broadcomUpgrade kernel-azure-vdsoUpgrade kernel-64kb-extraUpgrade dtb-socionextUpgrade dtb-rockchipUpgrade kernel-devel-azureUpgrade kernel-debug-vdsoUpgrade kernel-azure-develUpgrade dtb-sprdUpgrade dtb-amlogicUpgrade kernel-syms-rtUpgrade kernel-source-vanillaUpgrade dlm-kmp-rtUpgrade kernel-default-livepatchUpgrade kernel-default | Mar 12, 2025 | Feb 27, 2025 |
| Ubuntu | — | Upgrade linux-image-5.15.0-140-lowlatencyUpgrade linux-image-bluefieldUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.15.0-1037-nvidia-tegraUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04bUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-1029-oracleUpgrade linux-image-6.8.0-1031-nvidia-lowlatencyUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-6.8.1-1025-realtimeUpgrade linux-image-6.8.0-64-genericUpgrade linux-image-genericUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1084-realtimeUpgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1026-nvidia-tegra-igxUpgrade linux-image-oem-22.04Upgrade linux-image-fipsUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-6.8Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-5.4.0-216-genericUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-gkeUpgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-142-generic-lpaeUpgrade linux-image-6.8.0-1031-oemUpgrade linux-image-6.11.0-1014-awsUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1015-gkeopUpgrade linux-image-aws-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-5.15.0-1083-gcpUpgrade linux-image-oem-22.04aUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-5.4.0-1092-ibmUpgrade linux-image-virtualUpgrade linux-image-ibmUpgrade linux-image-azure-nvidiaUpgrade linux-image-azure-nvidia-6.8Upgrade linux-image-6.8.0-1031-nvidia-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-intel-iotgUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.15.0-1081-gkeUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-140-lowlatency-64kUpgrade linux-image-6.11.0-26-genericUpgrade linux-image-lowlatencyUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azure-lts-20.04Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.4.0-1149-gcp-fipsUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1031-raspiUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1029-ibmUpgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-5.4.0-1149-gcpUpgrade linux-image-6.11.0-1015-azureUpgrade linux-image-6.8.0-1022-azure-nvidiaUpgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-oemUpgrade linux-image-aws-64kUpgrade linux-image-aws-fipsUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.11.0-1022-oemUpgrade linux-image-azure-lts-22.04Upgrade linux-image-ibm-classicUpgrade linux-image-gkeopUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-oem-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-oem-24.04Upgrade linux-image-5.15.0-1078-nvidiaUpgrade linux-image-gkeop-6.8Upgrade linux-image-intelUpgrade linux-image-oem-20.04bUpgrade linux-image-5.4.0-1144-oracleUpgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-1133-kvmUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1089-azure-fipsUpgrade linux-image-5.4.0-1146-awsUpgrade linux-image-5.4.0-216-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-5.4.0-1064-xilinx-zynqmpUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-140-fipsUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-realtimeUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-5.4.0-1120-fipsUpgrade linux-image-6.8.0-1034-azureUpgrade linux-image-5.15.0-1083-gcp-fipsUpgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-5.15.0-1026-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-64-lowlatency-64kUpgrade linux-image-5.4.0-1146-aws-fipsUpgrade linux-image-5.15.0-1084-aws-fipsUpgrade linux-image-5.15.0-1080-kvmUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1078-nvidia-lowlatencyUpgrade linux-image-6.8.0-1032-awsUpgrade linux-image-6.8.0-1033-gcp-64kUpgrade linux-image-oem-20.04dUpgrade linux-image-oem-20.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1028-gkeUpgrade linux-image-gcpUpgrade linux-image-raspiUpgrade linux-image-oracleUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-virtual-6.8Upgrade linux-image-5.15.0-1076-ibmUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1034-azure-fdeUpgrade linux-image-6.8.0-64-generic-64kUpgrade linux-image-5.15.0-1089-azureUpgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-1031-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-2026-raspi-realtimeUpgrade linux-image-5.4.0-216-generic-lpaeUpgrade linux-image-5.4.0-1105-bluefieldUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-5.15.0-1078-raspiUpgrade linux-image-5.15.0-1037-nvidia-tegra-rtUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-azure-fipsUpgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-5.15.0-1066-gkeopUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-64-lowlatencyUpgrade linux-image-gke-6.8Upgrade linux-image-5.4.0-1151-azureUpgrade linux-image-5.15.0-142-genericUpgrade linux-image-raspi-realtimeUpgrade linux-image-ibm-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-140-generic-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-gcp-6.8Upgrade linux-image-5.4.0-1051-iotUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-azureUpgrade linux-image-realtime-6.8.1Upgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-140-generic-lpaeUpgrade linux-image-oem-22.04bUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-6.8Upgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-5.15.0-1077-intel-iot-realtimeUpgrade linux-image-oracle-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-142-generic-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1032-aws-64kUpgrade linux-image-5.15.0-1084-awsUpgrade linux-image-5.15.0-1081-oracleUpgrade linux-image-6.8.0-1031-nvidiaUpgrade linux-image-awsUpgrade linux-image-6.8.0-1033-gcpUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-oracle-64kUpgrade linux-image-azure-cvmUpgrade linux-image-raspi2Upgrade linux-image-kvmUpgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-1079-intel-iotgUpgrade linux-image-6.8.0-1029-oracle-64kUpgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-5.4.0-1151-azure-fipsUpgrade linux-image-gcp-64kUpgrade linux-image-5.15.0-140-genericUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1050-xilinx-zynqmpUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-gcp-64k-6.8 | 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