CVE Catalog

CVE-2026-89692

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel's nfsd module, nfsd_break_one_deleg() sets the NFSD4_CALLBACK_RUNNING bit, but when the recall queue attempt fails, the bit is not cleared. This permanently latches the bit, causing subsequent break_lease() calls on the same delegation to silently skip the recall, so the delegation is never broken and conflicting opens or locks stall. The fix clears the bit on the !queued branch.

Risk Assessment

After a failed delegation recall, subsequent open or lock operations on the same file may hang indefinitely. This leads to resource unavailability and degradation of NFS service for clients.

Recommendation

Update the Linux kernel to a version containing the fix that clears NFSD4_CALLBACK_RUNNING on the !queued branch. If hangs occur, consider restarting the nfsd service until the patch is applied.

Other vulnerabilities in Linux kernel (nfsd)

See all
Original NVD description (English source)

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.

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