In the Linux kernel, the following vulnerability has been resolved:
btrfs: lock the inode in shared mode before starting fiemap
Currently fiemap does not take the inode's lock (VFS lock), it only locks a file range in the inode's io tree. This however can lead to a deadlock if we have a concurrent fsync on the file and fiemap code triggers a fault when accessing the user space buffer with fiemap_fill_next_extent(). The deadlock happens on the inode's i_mmap_lock semaphore, which is taken both by fsync and btrfs_page_mkwrite(). This deadlock was recently reported by syzbot and triggers a trace like the following:
task:syz-executor361 state:D stack:20264 pid:5668 ppid:5119 flags:0x00004004 Call Trace: <TASK> context_switch kernel/sched/core.c:5293 [inline] __schedule+0x995/0xe20 kernel/sched/core.c:6606 schedule+0xcb/0x190 kernel/sched/core.c:6682 wait_on_state fs/btrfs/extent-io-tree.c:707 [inline] wait_extent_bit+0x577/0x6f0 fs/btrfs/extent-io-tree.c:751 lock_extent+0x1c2/0x280 fs/btrfs/extent-io-tree.c:1742 find_lock_delalloc_range+0x4e6/0x9c0 fs/btrfs/extent_io.c:488 writepage_delalloc+0x1ef/0x540 fs/btrfs/extent_io.c:1863 __extent_writepage+0x736/0x14e0 fs/btrfs/extent_io.c:2174 extent_write_cache_pages+0x983/0x1220 fs/btrfs/extent_io.c:3091 extent_writepages+0x219/0x540 fs/btrfs/extent_io.c:3211 do_writepages+0x3c3/0x680 mm/page-writeback.c:2581 filemap_fdatawrite_wbc+0x11e/0x170 mm/filemap.c:388 __filemap_fdatawrite_range mm/filemap.c:421 [inline] filemap_fdatawrite_range+0x175/0x200 mm/filemap.c:439 btrfs_fdatawrite_range fs/btrfs/file.c:3850 [inline] start_ordered_ops fs/btrfs/file.c:1737 [inline] btrfs_sync_file+0x4ff/0x1190 fs/btrfs/file.c:1839 generic_write_sync include/linux/fs.h:2885 [inline] btrfs_do_write_iter+0xcd3/0x1280 fs/btrfs/file.c:1684 call_write_iter include/linux/fs.h:2189 [inline] new_sync_write fs/read_write.c:491 [inline] vfs_write+0x7dc/0xc50 fs/read_write.c:584 ksys_write+0x177/0x2a0 fs/read_write.c:637 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7f7d4054e9b9 RSP: 002b:00007f7d404fa2f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f7d405d87a0 RCX: 00007f7d4054e9b9 RDX: 0000000000000090 RSI: 0000000020000000 RDI: 0000000000000006 RBP: 00007f7d405a51d0 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 61635f65646f6e69 R13: 65646f7475616f6e R14: 7261637369646f6e R15: 00007f7d405d87a8 </TASK> INFO: task syz-executor361:5697 blocked for more than 145 seconds. Not tainted 6.2.0-rc3-syzkaller-00376-g7c6984405241 #0 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor361 state:D stack:21216 pid:5697 ppid:5119 flags:0x00004004 Call Trace: <TASK> context_switch kernel/sched/core.c:5293 [inline] __schedule+0x995/0xe20 kernel/sched/core.c:6606 schedule+0xcb/0x190 kernel/sched/core.c:6682 rwsem_down_read_slowpath+0x5f9/0x930 kernel/locking/rwsem.c:1095 __down_read_common+0x54/0x2a0 kernel/locking/rwsem.c:1260 btrfs_page_mkwrite+0x417/0xc80 fs/btrfs/inode.c:8526 do_page_mkwrite+0x19e/0x5e0 mm/memory.c:2947 wp_page_shared+0x15e/0x380 mm/memory.c:3295 handle_pte_fault mm/memory.c:4949 [inline] __handle_mm_fault mm/memory.c:5073 [inline] handle_mm_fault+0x1b79/0x26b0 mm/memory.c:5219 do_user_addr_fault+0x69b/0xcb0 arch/x86/mm/fault.c:1428 handle_page_fault arch/x86/mm/fault.c:1519 [inline] exc_page_fault+0x7a/0x110 arch/x86/mm/fault.c:1575 asm_exc_page_fault+0x22/0x30 arch/x86/include/asm/idtentry.h:570 RIP: 0010:copy_user_short_string+0xd/0x40 arch/x86/lib/copy_user_64.S:233 Code: 74 0a 89 (...) RSP: 0018:ffffc9000570f330 EFLAGS: 000502 ---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 |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-libbpfUpgrade kernel-develUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-debuginfoUpgrade perfUpgrade kernel-debuginfoUpgrade python3-perfUpgrade kernel-tools-develUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-libbpf-develUpgrade kernelUpgrade kernel-livepatch-6.1.15-28.43Upgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade perf-debuginfoUpgrade kernel-headers | Feb 17, 2025 | May 21, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | May 21, 2024 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | May 21, 2024 |
| Suse | — | Upgrade kernel-rtUpgrade kernel-64kb-develUpgrade kernel-develUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade kernel-default-vdsoUpgrade dlm-kmp-64kbUpgrade dtb-alteraUpgrade kernel-azure-optionalUpgrade cluster-md-kmp-azureUpgrade dtb-rockchipUpgrade dtb-armUpgrade gfs2-kmp-rtUpgrade dtb-exynosUpgrade kernel-devel-azureUpgrade kernel-syms-azureUpgrade ocfs2-kmp-azureUpgrade dtb-mediatekUpgrade kernel-devel-rtUpgrade kernel-azure-livepatch-develUpgrade kernel-zfcpdumpUpgrade kernel-debug-vdsoUpgrade gfs2-kmp-azureUpgrade kernel-rt_debug-develUpgrade kernel-azureUpgrade kernel-default-base-rebuildUpgrade gfs2-kmp-64kbUpgrade kernel-default-optionalUpgrade kernel-azure-develUpgrade cluster-md-kmp-rtUpgrade dtb-allwinnerUpgrade kernel-source-vanillaUpgrade kernel-rt-develUpgrade reiserfs-kmp-azureUpgrade kernel-kvmsmallUpgrade dtb-lgUpgrade dtb-qcomUpgrade kernel-source-azureUpgrade dtb-caviumUpgrade kernel-symsUpgrade kernel-sourceUpgrade kernel-kvmsmall-develUpgrade kernel-rt-livepatchUpgrade dtb-xilinxUpgrade kernel-azure-extraUpgrade kernel-debug-develUpgrade kernel-64kb-livepatch-develUpgrade kernel-default-develUpgrade reiserfs-kmp-defaultUpgrade kernel-default-manUpgrade kernel-azure-baseUpgrade kernel-default-livepatch-develUpgrade ocfs2-kmp-rtUpgrade kernel-kvmsmall-vdsoUpgrade dtb-appleUpgrade dtb-marvellUpgrade dtb-amlogicUpgrade cluster-md-kmp-defaultUpgrade kernel-obs-buildUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-default-baseUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-hisiliconUpgrade kernel-azure-vdsoUpgrade dtb-renesasUpgrade kernel-debug-livepatch-develUpgrade dtb-amdUpgrade dlm-kmp-defaultUpgrade kernel-rt-optionalUpgrade kernel-docs-htmlUpgrade dtb-freescaleUpgrade kernel-rt-livepatch-develUpgrade dtb-broadcomUpgrade kernel-rt_debugUpgrade dtb-socionextUpgrade dtb-apmUpgrade dlm-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-azureUpgrade kernel-docsUpgrade kernel-rt-extraUpgrade reiserfs-kmp-64kbUpgrade kernel-64kb-optionalUpgrade dtb-nvidiaUpgrade dlm-kmp-rtUpgrade kernel-64kbUpgrade ocfs2-kmp-64kbUpgrade dtb-sprdUpgrade kernel-default-livepatchUpgrade kselftests-kmp-rtUpgrade cluster-md-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade kernel-defaultUpgrade kernel-debugUpgrade dtb-amazonUpgrade kernel-syms-rtUpgrade kernel-source-rtUpgrade kernel-rt-vdsoUpgrade kernel-rt_debug-vdsoUpgrade kernel-obs-qaUpgrade kernel-macrosUpgrade kernel-default-extra | Jul 10, 2024 | May 21, 2024 |
| Ubuntu | — | Upgrade linux-image-fipsUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-ibm-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-genericUpgrade linux-image-azure-fde-5.15Upgrade linux-image-oracleUpgrade linux-image-gkeopUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-nvidiaUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-virtualUpgrade linux-image-aws-lts-22.04Upgrade linux-image-gke-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-fips-5.15Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-intelUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-nvidia-tegraUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-oem-20.04bUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-azure-fips-5.15Upgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-lowlatencyUpgrade linux-image-ibmUpgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-generic-5.15Upgrade linux-image-aws-64k-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-lowlatency-5.15Upgrade linux-image-oem-20.04dUpgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-186-fipsUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-kvmUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-nvidia-tegra-igxNo solution existsUpgrade linux-image-nvidia-5.15Upgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-virtual-5.15Upgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-azure-fdeUpgrade linux-image-oracle-5.15Upgrade linux-image-gcpUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-azure-5.15Upgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-gkeop-5.15Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-aws-5.15Upgrade linux-image-5.15.0-186-genericUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-aws-fips-5.15Upgrade linux-image-gcp-5.15Upgrade linux-image-gcp-fipsUpgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-azureUpgrade linux-image-generic-64k-5.15Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-realtime-5.15Upgrade linux-image-gkeUpgrade linux-image-awsUpgrade linux-image-realtimeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-1064-nvidia-tegra | Jun 26, 2025 | May 21, 2024 |
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