Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-23018— btrfs: release path before initializing extent tree in btrfs_read_locked_inode()

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于在持有路径锁时进行GFP_KERNEL分配,可能导致循环锁依赖。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.12% · P2

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux 8679d2687c351824d08cf1f0e86f3b65f22a00fe< 92a5590851144f034adc51fee55e6878ccac716e affected
8679d2687c351824d08cf1f0e86f3b65f22a00fe< 8731f2c50b0b1d2b58ed5b9671ef2c4bdc2f8347 affected
e8f496001e0c7832d188ab91fea294e19a128202 affected
6.16.9< 6.17 affected
6.17 affected
< 6.17 unaffected
6.18.6≤ 6.18.* unaffected
6.19≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-23018

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
btrfs: release path before initializing extent tree in btrfs_read_locked_inode()
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: release path before initializing extent tree in btrfs_read_locked_inode() In btrfs_read_locked_inode() we are calling btrfs_init_file_extent_tree() while holding a path with a read locked leaf from a subvolume tree, and btrfs_init_file_extent_tree() may do a GFP_KERNEL allocation, which can trigger reclaim. This can create a circular lock dependency which lockdep warns about with the following splat: [6.1433] ====================================================== [6.1574] WARNING: possible circular locking dependency detected [6.1583] 6.18.0+ #4 Tainted: G U [6.1591] ------------------------------------------------------ [6.1599] kswapd0/117 is trying to acquire lock: [6.1606] ffff8d9b6333c5b8 (&delayed_node->mutex){+.+.}-{3:3}, at: __btrfs_release_delayed_node.part.0+0x39/0x2f0 [6.1625] but task is already holding lock: [6.1633] ffffffffa4ab8ce0 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat+0x195/0xc60 [6.1646] which lock already depends on the new lock. [6.1657] the existing dependency chain (in reverse order) is: [6.1667] -> #2 (fs_reclaim){+.+.}-{0:0}: [6.1677] fs_reclaim_acquire+0x9d/0xd0 [6.1685] __kmalloc_cache_noprof+0x59/0x750 [6.1694] btrfs_init_file_extent_tree+0x90/0x100 [6.1702] btrfs_read_locked_inode+0xc3/0x6b0 [6.1710] btrfs_iget+0xbb/0xf0 [6.1716] btrfs_lookup_dentry+0x3c5/0x8e0 [6.1724] btrfs_lookup+0x12/0x30 [6.1731] lookup_open.isra.0+0x1aa/0x6a0 [6.1739] path_openat+0x5f7/0xc60 [6.1746] do_filp_open+0xd6/0x180 [6.1753] do_sys_openat2+0x8b/0xe0 [6.1760] __x64_sys_openat+0x54/0xa0 [6.1768] do_syscall_64+0x97/0x3e0 [6.1776] entry_SYSCALL_64_after_hwframe+0x76/0x7e [6.1784] -> #1 (btrfs-tree-00){++++}-{3:3}: [6.1794] lock_release+0x127/0x2a0 [6.1801] up_read+0x1b/0x30 [6.1808] btrfs_search_slot+0x8e0/0xff0 [6.1817] btrfs_lookup_inode+0x52/0xd0 [6.1825] __btrfs_update_delayed_inode+0x73/0x520 [6.1833] btrfs_commit_inode_delayed_inode+0x11a/0x120 [6.1842] btrfs_log_inode+0x608/0x1aa0 [6.1849] btrfs_log_inode_parent+0x249/0xf80 [6.1857] btrfs_log_dentry_safe+0x3e/0x60 [6.1865] btrfs_sync_file+0x431/0x690 [6.1872] do_fsync+0x39/0x80 [6.1879] __x64_sys_fsync+0x13/0x20 [6.1887] do_syscall_64+0x97/0x3e0 [6.1894] entry_SYSCALL_64_after_hwframe+0x76/0x7e [6.1903] -> #0 (&delayed_node->mutex){+.+.}-{3:3}: [6.1913] __lock_acquire+0x15e9/0x2820 [6.1920] lock_acquire+0xc9/0x2d0 [6.1927] __mutex_lock+0xcc/0x10a0 [6.1934] __btrfs_release_delayed_node.part.0+0x39/0x2f0 [6.1944] btrfs_evict_inode+0x20b/0x4b0 [6.1952] evict+0x15a/0x2f0 [6.1958] prune_icache_sb+0x91/0xd0 [6.1966] super_cache_scan+0x150/0x1d0 [6.1974] do_shrink_slab+0x155/0x6f0 [6.1981] shrink_slab+0x48e/0x890 [6.1988] shrink_one+0x11a/0x1f0 [6.1995] shrink_node+0xbfd/0x1320 [6.1002] balance_pgdat+0x67f/0xc60 [6.1321] kswapd+0x1dc/0x3e0 [6.1643] kthread+0xff/0x240 [6.1965] ret_from_fork+0x223/0x280 [6.1287] ret_from_fork_asm+0x1a/0x30 [6.1616] other info that might help us debug this: [6.1561] Chain exists of: &delayed_node->mutex --> btrfs-tree-00 --> fs_reclaim [6.1503] Possible unsafe locking scenario: [6.1110] CPU0 CPU1 [6.1411] ---- ---- [6.1707] lock(fs_reclaim); [6.1998] lock(btrfs-tree-00); [6.1291] lock(fs_reclaim); [6.1581] lock(&del ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于在持有路径锁时进行GFP_KERNEL分配,可能导致循环锁依赖。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 8679d2687c351824d08cf1f0e86f3b65f22a00fe ~ 92a5590851144f034adc51fee55e6878ccac716e -
Linux Linux 6.17 -

II. Public POCs for CVE-2026-23018

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-23018

请登录查看更多情报信息。

Same Patch Batch · Linux · 2026-01-31 · 37 CVEs total

CVE-2025-71183 9.1 CRITICAL btrfs: always detect conflicting inodes when logging inode refs
CVE-2026-23019 net: marvell: prestera: fix NULL dereference on devlink_alloc() failure
CVE-2025-71187 dmaengine: sh: rz-dmac: fix device leak on probe failure
CVE-2025-71186 dmaengine: stm32: dmamux: fix device leak on route allocation
CVE-2025-71185 dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation
CVE-2026-23024 idpf: fix memory leak of flow steer list on rmmod
CVE-2026-23023 idpf: fix memory leak in idpf_vport_rel()
CVE-2026-23022 idpf: fix memory leak in idpf_vc_core_deinit()
CVE-2026-23021 net: usb: pegasus: fix memory leak in update_eth_regs_async()
CVE-2026-23020 net: 3com: 3c59x: fix possible null dereference in vortex_probe1()
CVE-2025-71189 dmaengine: dw: dmamux: fix OF node leak on route allocation failure
CVE-2026-23017 idpf: fix error handling in the init_task on load
CVE-2026-23016 inet: frags: drop fraglist conntrack references
CVE-2026-23015 gpio: mpsse: fix reference leak in gpio_mpsse_probe() error paths
CVE-2025-71184 btrfs: fix NULL dereference on root when tracing inode eviction
CVE-2025-71182 can: j1939: make j1939_session_activate() fail if device is no longer registered
CVE-2025-71181 rust_binder: remove spin_lock() in rust_shrink_free_page()
CVE-2025-71180 counter: interrupt-cnt: Drop IRQF_NO_THREAD flag
CVE-2026-23031 can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak
CVE-2026-23039 drm/gud: fix NULL fb and crtc dereferences on USB disconnect

Showing top 20 of 37 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-23018

No comments yet


Leave a comment