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

Published Sep 11, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

nfsd: fix layout fence worker double-reference race

The workqueue core clears WORKSTRUCTPENDING before the callback is invoked, so delayedworkpending() in lmbreakertimedout() can return false while the fence worker is already running. This lets the breaker take a duplicate sccount 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 delayedworkpending() check with an lsfenceinflight boolean set atomically with refcountincnotzero() under lslock, and cleared under lslock before the final nfs4putstid() on the dispose path; the retry path intentionally retains it. Remove the self-rearm moddelayedwork() at the top of the worker.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 11, 2026
CVE Published
via MITRE·07:46 PM
Data Sourced
via MITRE·07:46 PM
Description

Frequently Asked Questions

1

What systems are exposed to this issue?

Systems running the Linux kernel NFS server component (nfsd) are relevant. The issue involves layout fence worker handling and can leak an NFS layout stateid when the described worker race occurs.

2

What conditions trigger the leak?

The race occurs when the workqueue has cleared WORK_STRUCT_PENDING before the fence worker callback begins. In that window, lm_breaker_timedout() can see delayed_work_pending() as false, take a duplicate sc_count reference, and schedule work that coalesces with the worker already in progress.

3

Is there a documented workaround if the fix cannot be applied immediately?

No workaround or configuration mitigation is provided in the available data. The referenced resolution replaces the racy pending-work check with ls_fence_inflight synchronization under ls_lock and removes the worker's self-rearm operation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203