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

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-89681— nfsd: fix layout fence worker double-reference race

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 内核中,以下漏洞已修复: nfsd:修复布局屏障(layout fence)工作线程的双重引用竞争条件 工作队列核心会在调用回调函数之前清除 标志。因此,当布局屏障工作线程(fence worker)已经在运行时, 中的 可能返回 。这会导致断路器(breaker)对 取一个重复的引用,并调度一个新的工作线程,该工作线程会与正在执行的工作线程合并。这个多余的引用从未被释放(put),导致布局状态 ID(layout stateid)发生内存泄漏。 修复方法: 用 布尔值替代存在竞争条件的 检查。该布

AI Predicted 5.5 Difficulty: Hard

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux f52792f484ba2316853736856dde19b7e7458861< a278d361e0e8f242211891193d56483a7a9f47a8 affected
f52792f484ba2316853736856dde19b7e7458861< 8580571227451384399b3fa53fcde19848c48e5a affected
7.1 affected
< 7.1 unaffected
7.2.4≤ 7.2.* unaffected
7.3-rc1≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-89681

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
nfsd: fix layout fence worker double-reference race
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: nfsd: fix layout fence worker double-reference race The workqueue core clears WORK_STRUCT_PENDING before the callback is invoked, so delayed_work_pending() in lm_breaker_timedout() can return false while the fence worker is already running. This lets the breaker take a duplicate sc_count reference and schedule a new worker that coalesces with the in-progress one. The extra reference is never put, leaking the layout stateid. Replace the racy delayed_work_pending() check with an ls_fence_inflight boolean set atomically with refcount_inc_not_zero() under ls_lock, and cleared under ls_lock before the final nfs4_put_stid() on the dispose path; the retry path intentionally retains it. Remove the self-rearm mod_delayed_work() at the top of the worker.
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 f52792f484ba2316853736856dde19b7e7458861 ~ a278d361e0e8f242211891193d56483a7a9f47a8 -
Linux Linux 7.1 -

II. Public POCs for CVE-2026-89681

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

登录查看更多情报信息。

Patches & Fixes for CVE-2026-89681 (2)

Same Patch Batch · Linux · 2026-09-11 · 431 CVEs total

CVE-2026-89491 ocfs2: cluster: don't sleep while holding o2hb_live_lock in o2hb_region_pin()
CVE-2026-89477 sctp: fix NULL deref on untransmitted RECONF completion
CVE-2026-89478 sctp: drop a chunk if its transport was removed
CVE-2026-89479 sctp: stop processing a packet once its association is deleted
CVE-2026-89480 nvme-tcp: reject a read that transferred too few bytes
CVE-2026-89482 nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone
CVE-2026-89481 nvme-tcp: fix host memory disclosure on R2T for a read command
CVE-2026-89483 nvme: zero the discard fallback page
CVE-2026-89484 lockd: fix NULL dereference on lockowner allocation failure
CVE-2026-89485 lockd: pin next file across nlm_inspect_file lock-drop
CVE-2026-89486 ipmi: Fix use-after-free of cmd_rcvr in _ipmi_destroy_user()
CVE-2026-89487 openvswitch: only skb_tx_error() a packet we are about to drop
CVE-2026-89488 openvswitch: Fix CT limit teardown use-after-free
CVE-2026-89489 openrisc: fix arbitrary kernel memory access via or1k_atomic syscall
CVE-2026-89500 ring-buffer: Make cpu_buffer::free_page a buffer_data_read_page
CVE-2026-89497 orangefs: skip leading spaces before parsing client debug masks
CVE-2026-89498 orangefs: fix double-free of trailer_buf on readdir copy failure
CVE-2026-89499 ring-buffer: Stop remote reader update when page swap fails
CVE-2026-89496 ocfs2: always run deallocs on copy-on-write completion
CVE-2026-89501 ring-buffer: Hold cpu_buffer::lock when resizing a subbuf

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

IV. Related Vulnerabilities

V. Comments for CVE-2026-89681

No comments yet


Leave a comment