CVE Catalog

CVE-2026-89681

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, 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.

Risk Assessment

The layout stateid leak can lead to resource exhaustion on the nfsd server and ultimately denial of service. The vulnerability is triggered by NFS layout operations.

Recommendation

Update the Linux kernel to a version containing the fix that replaces the racy delayed_work_pending() check with an ls_fence_inflight boolean set atomically under ls_lock.

Other vulnerabilities in Linux kernel nfsd

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS