CVE-2026-89681

nfsd: fix layout fence worker double-reference race

Published Sep 11, 2026 CVSS 3.1 · 9.8 Critical EPSS < 1% KEV · Not listed
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.

Analysis

AI-generated

Technical impact

The vulnerability is a race condition in the Linux kernel’s NFS daemon layout fence worker. It allows the breaker to duplicate a reference to a layout state identifier that is never released. This creates a reference‑counting leak, causing the layout stateid to persist beyond its intended lifetime.

Affected Systems

All configurations that use the Linux kernel and its NFS daemon are potentially impacted because the fault exists in kernel workqueue code used by NFS. The specific kernel version range is not enumerated, so any kernel build without the patch is at risk.

Risk and Exploitability

The CVSS score of 9.8 categorizes the flaw as critical, and the EPSS score of < 1% indicates a low probability of real‑world exploitation at the time of this analysis. The flaw is not listed in the CISA KEV catalog. An attacker who can send NFS requests that trigger the race may obtain an unreleased reference, potentially increasing kernel resource usage. The available information does not describe direct denial‑of‑service or code execution capabilities.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update to the latest Linux kernel that contains the NFSd layout fence worker fix.
  • If a kernel upgrade cannot be implemented immediately, limit NFS accessibility to trusted sources or temporarily stop NFS services to reduce exposure.
  • Review kernel logs for indications of repeated fence worker activity or unexpected stateid references to detect possible exploitation.

Generated by OpenCVE AI on September 15, 2026 at 20:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
Weaknesses CWE-362
CWE-401
Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate

Type Values Removed Values Added
Weaknesses CWE-362
CWE-401
Type Values Removed Values Added
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.
Title nfsd: fix layout fence worker double-reference race
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 19, 2026, 8:50 AM
Reserved
Sep 11, 2026, 7:38 PM
Status
Received
Published
Sep 11, 2026, 8:19 PM
Modified
Oct 19, 2026, 9:18 AM
Severity
Moderate
Public date
Sep 11, 2026, 7:46 PM