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 kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-6.1.15-28.43Upgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-libbpf-develUpgrade perf-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-libbpfUpgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernel-develUpgrade perfUpgrade kernel-tools-debuginfoUpgrade python3-perfUpgrade kernel-libbpf-staticUpgrade bpftool | 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 gfs2-kmp-64kbUpgrade kernel-default-vdsoUpgrade dtb-allwinnerUpgrade kernel-azure-optionalUpgrade kernel-default-optionalUpgrade kernel-source-vanillaUpgrade cluster-md-kmp-rtUpgrade dtb-rockchipUpgrade kernel-azure-develUpgrade dtb-qcomUpgrade dtb-caviumUpgrade kernel-sourceUpgrade kernel-rt-develUpgrade kernel-kvmsmallUpgrade kernel-azureUpgrade ocfs2-kmp-defaultUpgrade kernel-rtUpgrade kernel-zfcpdumpUpgrade kernel-rt-livepatchUpgrade kernel-devel-rtUpgrade kernel-develUpgrade kernel-debug-vdsoUpgrade dtb-mediatekUpgrade gfs2-kmp-defaultUpgrade kernel-64kb-develUpgrade kernel-kvmsmall-develUpgrade kernel-rt_debug-develUpgrade dlm-kmp-64kbUpgrade kernel-symsUpgrade reiserfs-kmp-azureUpgrade kernel-default-base-rebuildUpgrade gfs2-kmp-azureUpgrade kernel-azure-livepatch-develUpgrade dtb-exynosUpgrade gfs2-kmp-rtUpgrade dtb-armUpgrade dtb-lgUpgrade cluster-md-kmp-azureUpgrade dtb-alteraUpgrade kernel-source-azureUpgrade kernel-devel-azureUpgrade kernel-syms-azureUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-azureUpgrade dtb-xilinxUpgrade reiserfs-kmp-defaultUpgrade kernel-64kb-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-source-rtUpgrade kernel-obs-qaUpgrade kernel-default-extraUpgrade kernel-debug-develUpgrade kernel-azure-extraUpgrade kernel-default-livepatchUpgrade kernel-64kbUpgrade dtb-appleUpgrade kernel-rt-vdsoUpgrade kernel-macrosUpgrade kernel-syms-rtUpgrade kernel-obs-buildUpgrade kselftests-kmp-azureUpgrade kernel-64kb-optionalUpgrade dtb-socionextUpgrade reiserfs-kmp-64kbUpgrade kernel-rt-extraUpgrade kernel-docsUpgrade dtb-broadcomUpgrade dtb-apmUpgrade dlm-kmp-azureUpgrade dlm-kmp-defaultUpgrade kernel-rt_debugUpgrade dtb-amdUpgrade kernel-docs-htmlUpgrade kernel-rt-optionalUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-vdsoUpgrade dtb-renesasUpgrade dtb-freescaleUpgrade reiserfs-kmp-rtUpgrade kernel-debug-livepatch-develUpgrade dtb-nvidiaUpgrade kernel-default-baseUpgrade dtb-sprdUpgrade kernel-azure-baseUpgrade ocfs2-kmp-rtUpgrade kernel-defaultUpgrade dtb-amazonUpgrade kernel-default-develUpgrade kernel-kvmsmall-vdsoUpgrade kselftests-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade dtb-marvellUpgrade dtb-amlogicUpgrade cluster-md-kmp-defaultUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-64kb-extraUpgrade dtb-hisiliconUpgrade kernel-default-livepatch-develUpgrade cluster-md-kmp-64kbUpgrade kernel-default-manUpgrade kernel-debugUpgrade kselftests-kmp-defaultUpgrade kernel-rt_debug-livepatch-develUpgrade dlm-kmp-rt | Jul 10, 2024 | May 21, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oem-20.04bUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-aws-lts-22.04Upgrade linux-image-virtualUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-fipsUpgrade linux-image-fips-5.15Upgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-aws-fipsUpgrade linux-image-oracleUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-aws-64k-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-lowlatency-64kUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-nvidiaUpgrade linux-image-ibmUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-generic-5.15Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-genericUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-intelUpgrade linux-image-ibm-5.15Upgrade linux-image-lowlatency-5.15Upgrade linux-image-azure-fips-5.15Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-azure-fde-5.15Upgrade linux-image-gkeopUpgrade linux-image-gcp-5.15Upgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-generic-64k-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-aws-fips-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-aws-5.15Upgrade linux-image-oracle-5.15Upgrade linux-image-nvidia-5.15Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-gcpUpgrade linux-image-azure-5.15Upgrade linux-image-azure-fdeUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-kvmUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-awsUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-realtime-5.15Upgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-realtimeUpgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-virtual-5.15Upgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-azureUpgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-5.15.0-186-fipsUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-intel-iot-realtimeNo solution existsUpgrade linux-image-gcp-fipsUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-gkeUpgrade linux-image-5.15.0-1108-gke | 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