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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-46299— hfsplus: fix held lock freed on hfsplus_fill_super()

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存在安全漏洞,该漏洞源于hfsplus_fill_super函数中锁释放不当,可能导致释放已持有的锁。以下版本受到影响:6.13-rc1版本。

CVSS 7.0 · High EPSS 0.09% · P0

Possible ATT&CK Techniques 1 AI

T1499.003 · Application Exhaustion Flood

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< e890656accee4c26d932ea388eb8936a6e22184d affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< 6499c9c8ec437a369e7e221dad91f6122b50759d affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< c554ddc87af4d4e4be42f8aed1baec9e1c7588e0 affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< 3ca80e3012c8be85b4f8d0d20eac8d3b17ff257e affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< 041acda6d9f96006703466449c10c9a69590c8b9 affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< d309d3308de658d87c42d97e044c89a226327526 affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< bfbcce6a7b0552a390620d9b2c4d2bcb1825cbdc affected
89ac9b4d3d1a049ae1054f99b1aed81092cd0a82< 90c500e4fd83fa33c09bc7ee23b6d9cc487ac733 affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-46299

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
hfsplus: fix held lock freed on hfsplus_fill_super()
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: hfsplus: fix held lock freed on hfsplus_fill_super() hfsplus_fill_super() calls hfs_find_init() to initialize a search structure, which acquires tree->tree_lock. If the subsequent call to hfsplus_cat_build_key() fails, the function jumps to the out_put_root error label without releasing the lock. The later cleanup path then frees the tree data structure with the lock still held, triggering a held lock freed warning. Fix this by adding the missing hfs_find_exit(&fd) call before jumping to the out_put_root error label. This ensures that tree->tree_lock is properly released on the error path. The bug was originally detected on v6.13-rc1 using an experimental static analysis tool we are developing, and we have verified that the issue persists in the latest mainline kernel. The tool is specifically designed to detect memory management issues. It is currently under active development and not yet publicly available. We confirmed the bug by runtime testing under QEMU with x86_64 defconfig, lockdep enabled, and CONFIG_HFSPLUS_FS=y. To trigger the error path, we used GDB to dynamically shrink the max_unistr_len parameter to 1 before hfsplus_asc2uni() is called. This forces hfsplus_asc2uni() to naturally return -ENAMETOOLONG, which propagates to hfsplus_cat_build_key() and exercises the faulty error path. The following warning was observed during mount: ========================= WARNING: held lock freed! 7.0.0-rc3-00016-gb4f0dd314b39 #4 Not tainted ------------------------- mount/174 is freeing memory ffff888103f92000-ffff888103f92fff, with a lock still held there! ffff888103f920b0 (&tree->tree_lock){+.+.}-{4:4}, at: hfsplus_find_init+0x154/0x1e0 2 locks held by mount/174: #0: ffff888103f960e0 (&type->s_umount_key#42/1){+.+.}-{4:4}, at: alloc_super.constprop.0+0x167/0xa40 #1: ffff888103f920b0 (&tree->tree_lock){+.+.}-{4:4}, at: hfsplus_find_init+0x154/0x1e0 stack backtrace: CPU: 2 UID: 0 PID: 174 Comm: mount Not tainted 7.0.0-rc3-00016-gb4f0dd314b39 #4 PREEMPT(lazy) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x82/0xd0 debug_check_no_locks_freed+0x13a/0x180 kfree+0x16b/0x510 ? hfsplus_fill_super+0xcb4/0x18a0 hfsplus_fill_super+0xcb4/0x18a0 ? __pfx_hfsplus_fill_super+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? bdev_open+0x65f/0xc30 ? srso_return_thunk+0x5/0x5f ? pointer+0x4ce/0xbf0 ? trace_contention_end+0x11c/0x150 ? __pfx_pointer+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? bdev_open+0x79b/0xc30 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? vsnprintf+0x6da/0x1270 ? srso_return_thunk+0x5/0x5f ? __mutex_unlock_slowpath+0x157/0x740 ? __pfx_vsnprintf+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? mark_held_locks+0x49/0x80 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? irqentry_exit+0x17b/0x5e0 ? trace_irq_disable.constprop.0+0x116/0x150 ? __pfx_hfsplus_fill_super+0x10/0x10 ? __pfx_hfsplus_fill_super+0x10/0x10 get_tree_bdev_flags+0x302/0x580 ? __pfx_get_tree_bdev_flags+0x10/0x10 ? vfs_parse_fs_qstr+0x129/0x1a0 ? __pfx_vfs_parse_fs_qstr+0x3/0x10 vfs_get_tree+0x89/0x320 fc_mount+0x10/0x1d0 path_mount+0x5c5/0x21c0 ? __pfx_path_mount+0x10/0x10 ? trace_irq_enable.constprop.0+0x116/0x150 ? trace_irq_enable.constprop.0+0x116/0x150 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? kmem_cache_free+0x307/0x540 ? user_path_at+0x51/0x60 ? __x64_sys_mount+0x212/0x280 ? srso_return_thunk+0x5/0x5f __x64_sys_mount+0x212/0x280 ? __pfx___x64_sys_mount+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? trace_irq_enable.constprop.0+0x116/0x150 ? srso_return_thunk+0x5/0x5f do_syscall_64+0x111/0x680 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7ffacad55eae Code: 48 8b 0d 85 1f 0f 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 a5 00 00 8 RSP: 002b ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
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存在安全漏洞,该漏洞源于hfsplus_fill_super函数中锁释放不当,可能导致释放已持有的锁。以下版本受到影响:6.13-rc1版本。
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 89ac9b4d3d1a049ae1054f99b1aed81092cd0a82 ~ e890656accee4c26d932ea388eb8936a6e22184d -
Linux Linux 3.19 -

II. Public POCs for CVE-2026-46299

# 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-46299

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

Patches & Fixes for CVE-2026-46299 (8)

Same Patch Batch · Linux · 2026-06-08 · 41 CVEs total

CVE-2026-46289 9.8 CRITICAL lib/scatterlist: fix length calculations in extract_kvec_to_sg
CVE-2026-46288 8.4 HIGH of: unittest: fix use-after-free in of_unittest_changeset()
CVE-2026-46307 8.3 HIGH wifi: ath5k: do not access array OOB
CVE-2026-46303 8.2 HIGH isofs: validate Rock Ridge CE continuation extent against volume size
CVE-2026-46274 7.8 HIGH io-wq: check that the predecessor is hashed in io_wq_remove_pending()
CVE-2026-46275 7.8 HIGH Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths
CVE-2026-46277 7.8 HIGH mm/zone_device: do not touch device folio after calling ->folio_free()
CVE-2026-46280 7.8 HIGH lib: test_hmm: evict device pages on file close to avoid use-after-free
CVE-2026-46311 7.8 HIGH drm/amdgpu/userq: fix access to stale wptr mapping
CVE-2026-46304 7.5 HIGH nvmet: avoid recursive nvmet-wq flush in nvmet_ctrl_free
CVE-2026-46306 7.5 HIGH flow_dissector: do not dissect PPPoE PFC frames
CVE-2026-46296 spi: s3c64xx: fix NULL-deref on driver unbind
CVE-2026-46314 drm/v3d: Reject empty multisync extension to prevent infinite loop
CVE-2026-46298 pseries/papr-hvpipe: Fix race with interrupt handler
CVE-2026-46301 spi: topcliff-pch: fix use-after-free on unbind
CVE-2026-46302 selinux: allow multiple opens of /sys/fs/selinux/policy
CVE-2026-46305 staging: rtl8723bs: os_dep: avoid NULL pointer dereference in rtw_cbuf_alloc
CVE-2026-46308 pmdomain: mediatek: fix use-after-free in scpsys_get_bus_protection_legacy()
CVE-2026-46309 drm/xe/uapi: Reject coh_none PAT index for CPU cached memory in madvise
CVE-2026-46310 media: renesas: vsp1: Fix NULL pointer deref on module unload

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

IV. Related Vulnerabilities

V. Comments for CVE-2026-46299

No comments yet


Leave a comment