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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-99084— readdir: take no inode lock on an immutable directory

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 内核中,以下漏洞已得到修复: readdir:对不可变目录不再获取 inode 锁 会获取目录的 共享锁,并在整个 调用期间持有该锁。对于那些从未包含任何条目且永远不会被删除的目录而言,该锁实际上并未保护任何可变状态,其作用仅仅是让该 inode 的所有读操作和写操作按顺序排队。 这对 nullfs 实例的目录尤为关键。初始挂载命名空间的实例是所有空挂载命名空间的根目录,而私有实例则是所有内核线程的根目录。因此,同一个 inode 被多个彼此无其他关联的用户共享。如果某个读取操作可以任意长时间地持有

AI Predicted 7.5 Difficulty: Moderate

Possible ATT&CK Techniques 1 AI

T1499.003 · Application Exhaustion Flood
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-99084

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
readdir: take no inode lock on an immutable directory
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: readdir: take no inode lock on an immutable directory iterate_dir() takes the directory's i_rwsem shared and holds it across ->iterate_shared(). For a directory that never has an entry and is never removed the lock keeps nothing still, it only orders every reader and every writer of that inode behind each other. For the directory of a nullfs instance that matters. The instance of the initial mount namespace is the root of every empty mount namespace and the private instance is the root of every kernel thread, so one inode is shared across users who have nothing else in common. And a reader can hold the lock for as long as it likes: back the getdents() buffer with a mapping of a file on a FUSE mount of your own, let the copy of "." and ".." fault and let the server wait. Queue an exclusive taker behind it, a mkdir() in that directory goes through start_dirop() before the read-only mount is reported, and from then on every lookup that misses the dcache in that directory, every create and every mount on it waits until the server answers. One user of an empty mount namespace stalls all the others. Add FOP_IMMUTABLE for the file operations of a directory that never changes and is never removed and let iterate_dir() skip the lock for it. The flag never changes for a file, ->f_pos is protected by f_pos_lock since directories are FMODE_ATOMIC_POS, IS_DEADDIR can't be set on such a directory and neither touch_atime() nor fsnotify take i_rwsem. Set it on the nullfs directory. The placeholder directories of libfs never have an entry either but their owners remove them, so they keep the lock.
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

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 9d4e752a24f740b31ca827bfab07010e4e7f34b0 ~ 6d30b399ae28e5166d62484f81ccaefde6fe7996 -
Linux Linux 7.1 -

II. Public POCs for CVE-2026-99084

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

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

Other References for CVE-2026-99084 (2)

Same Patch Batch · Linux · 2026-10-23 · 218 CVEs total

CVE-2026-98937 perf/core: Check kernel access when kernel callchains are requested
CVE-2026-98950 flow_dissector: avoid u16 truncation of hlen in bpf_flow_dissect()
CVE-2026-98949 drm/imagination: Fix reference and vm_bo handling in remap()
CVE-2026-98948 mlxsw: spectrum_flower: Fix port range register leak in tmplt_create()
CVE-2026-98947 vsock: Fix memory leak in vmci_transport_recv_dgram_cb()
CVE-2026-98946 drm/vc4: Disable the V3D interrupt across runtime suspend
CVE-2026-98945 HID: steam: Rearrange teardown sequence
CVE-2026-98944 HID: steam: Refactor registration
CVE-2026-98943 HID: steam: Clean up locking
CVE-2026-98942 sched_ext: Build the cid tables privately and publish them with RCU
CVE-2026-98941 ext4: don't enable large folios on encrypted inodes
CVE-2026-98940 ASoC: qcom: lpass-cpu: use DAI table index for playback constraints
CVE-2026-98939 x86/mm: Drop unnecessary PMD page copy when freeing
CVE-2026-98938 rust: irq: pass RegistrationInner as cookie to request_irq
CVE-2026-98926 drm/amd/display: Remove sink usage from DPMS
CVE-2026-98929 macsec: initialize SecY before registering the netdevice
CVE-2026-98928 KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2
CVE-2026-98927 KVM: arm64: nv: Fix life cycle of the nested_mmus array
CVE-2026-98930 KVM: s390: Fix IRQ injection with SIGP Stop and Store Status
CVE-2026-98925 bpf, sockmap: Fix self-redirect copied_seq double-counting

Showing top 20 of 218 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2026-99084

No comments yet


Leave a comment