ZeroHour

CVE-2026-89687

moderate

Linux kernel nfsd may use an unopened file, allowing remote denial of service

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's NFS server code (nfsd) could, in nfsd_file_do_acquire(), use a file returned by dentry_create() that was never actually opened, because an ->atomic_open handler is permitted to report success via finish_no_open() without opening the file. An attacker with network access to an NFS export could in theory trigger this only through a rare race during file creation, causing nfsd to operate on an unopened file and most likely crash or disrupt the service; the CVSS 7.5 vector confirms an availability-only impact (no confidentiality or integrity effect) requiring no privileges or user interaction. Affected systems are Linux hosts running kernels whose nfsd uses the dentry_create() file-creation path, though the kernel developers note the condition is extremely unlikely in practice because atomic_open handlers use finish_no_open() only for already-existing files and parent-directory locking should prevent the race. The fix teaches nfsd to only use the returned file when the FMODE_OPENED flag is set. There is no public proof of concept, the CVE is not in CISA's KEV catalog, and no exploitation is known.

What to do: Apply kernel updates from your distribution once they include the fix (nfsd now checks the FMODE_OPENED flag before using a file returned by dentry_create()); as an availability-only, hard-to-trigger flaw this can be handled in normal patch cycles rather than as an emergency. Ensure NFS (TCP/UDP 2049) is not reachable from untrusted networks and that exports are restricted to trusted hosts and subnets. If you run nfsd on very recent mainline-based kernels, verify you have the patched build and monitor nfsd for crashes.

Affected
Linux kernel (nfsd)Kernels containing the vulnerable nfsd_file_do_acquire()/dentry_create() file-creation path; the source data does not specify exact affected version ranges
Estimated exposure
moderate≈1,000–10,000 NFS servers on affected recent kernels, a small subset of the ~200,000+ hosts publicly exposing NFS (port 2049) — Public internet scans (Shodan/Censys-class) typically show on the order of 200k+ hosts with NFS reachable, but the dentry_create() path exists only in recent kernel releases and most deployments run older stable distribution kernels, so…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: nfsd: ensure nfsd_file_do_acquire() does not use a non-opened file ->atomic_open is permitted to return success without actually opening the file. It indicates this by calling finish_no_open(). This means dentry_create() can return a file which hasn't been opened. This is extremely unlikely as ->atomic_open handlers typically use finish_no_open() only for already existing files, and dentry_create() isn't called in that case, and the parent being locked should prevent races. However out of an abundance of caution it seems wise to teach nfsd to only use the file returned by dentry_create() if FMODE_OPENED is set, indicating that it has in fact been opened.

Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

In the news

No ingested article mentions this CVE yet.