CVE-2026-89692

nfsd: clear CALLBACK_RUNNING on failed delegation recall queue

Published Sep 11, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

nfsd: clear CALLBACK_RUNNING on failed delegation recall queue

nfsd_break_one_deleg() sets NFSD4_CALLBACK_RUNNING via test_and_set_bit
at entry to serialize recall work, then calls nfsd4_run_cb() to queue
the recall. When the queue attempt fails the refcount bump is undone,
but the RUNNING bit is left set. The only site that clears the bit is
nfsd41_destroy_cb() (fs/nfsd/nfs4callback.c), which runs from the
workqueue and is therefore unreachable when nothing was queued.

The bit becomes a permanent latch on dp->dl_recall.cb_flags: every
subsequent break_lease() on the same delegation hits the early-return
guard in nfsd_break_one_deleg() and silently skips the recall, so the
delegation is never broken and the conflicting open or lock stalls.

Fix by clearing NFSD4_CALLBACK_RUNNING on the !queued branch alongside
the refcount_dec.

Analysis

AI-generated

Technical impact

The flaw resides in the Linux kernel's NFSv4 implementation, specifically in the nfsd component. When a delegation recall fails to enqueue on the callback workqueue, the NFSD4_CALLBACK_RUNNING flag is left set. This flag is never cleared on subsequent attempts to break the same delegation, leading the server to silently skip required recalls. As a result, stale delegations persist, blocking conflicting file opens or locks and effectively denying access to NFS clients. The weakness is a logic error that allows the system stateWE‑911).

Affected Systems

NFSv4 servers running the Linux kernel on any distribution that has not incorporated the commit adding a clear of the CALLBACK_RUNNING flag when the recall queue fails. All kernel versions prior to the patch are affected, regardless of distribution, as the flaw is present in the core kernel code and not mitigated by other components.

Risk and Exploitability

The CVSS base score of 7.5 classifies this vulnerability as high severity. The EPSS score is below 1 % and the vulnerability is not listed in CISA KEV, indicating a low probability of widespread exploitation. Based on the description, it is inferred that the attacker would need remote network access to an NFSv4 server and must provoke a delegation break that fails to enqueue; the subsequent silent skip of recalls can then cause client operations to stall. No public exploits are known, but the flaw can lead to a denial of service for NFS clients once a stale delegation is established.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that includes the commit clearing the CALLBACK_RUNNING flag.
  • If an immediate kernel upgrade cannot be performed, disable NFSv4 delegations on the server by setting allowdelegation=no in /etc/nfs.conf or using an equivalent mount option to stop the flag from being triggered.
  • Continuously monitor NFS client operations for signs of stalled locks or blocked file opens and be ready to restart the NFS daemon or reboot the system when such symptoms occur.

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

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9091-1 Linux kernel (NVIDIA Tegra) vulnerabilities
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': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Type Values Removed Values Added
Weaknesses CWE-665
Type Values Removed Values Added
Weaknesses CWE-911
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-665
Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nfsd: clear CALLBACK_RUNNING on failed delegation recall queue nfsd_break_one_deleg() sets NFSD4_CALLBACK_RUNNING via test_and_set_bit at entry to serialize recall work, then calls nfsd4_run_cb() to queue the recall. When the queue attempt fails the refcount bump is undone, but the RUNNING bit is left set. The only site that clears the bit is nfsd41_destroy_cb() (fs/nfsd/nfs4callback.c), which runs from the workqueue and is therefore unreachable when nothing was queued. The bit becomes a permanent latch on dp->dl_recall.cb_flags: every subsequent break_lease() on the same delegation hits the early-return guard in nfsd_break_one_deleg() and silently skips the recall, so the delegation is never broken and the conflicting open or lock stalls. Fix by clearing NFSD4_CALLBACK_RUNNING on the !queued branch alongside the refcount_dec.
Title nfsd: clear CALLBACK_RUNNING on failed delegation recall queue
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses
  • CWE-911

    Improper Update of Reference Count

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 19, 2026, 8:51 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