7.5

CVE-2026-89696

nfsd: block non-SAVEFH ops after FOREIGN PUTFH to prevent NULL deref

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

nfsd: block non-SAVEFH ops after FOREIGN PUTFH to prevent NULL deref

When CONFIG_NFSD_V4_2_INTER_SSC is enabled, nfsd4_putfh() can return
success with fh_dentry and fh_export both NULL if fh_verify() returns
nfserr_stale and putfh->no_verify is true. The NFSD4_FH_FOREIGN flag
is set, but the compound dispatch loop only uses this flag to bypass
the nfserr_nofilehandle check -- it does not prevent subsequent ops
from running with a NULL fh_dentry.

A remote client can exploit this by crafting a COMPOUND that includes
an inter-SSC COPY (which causes check_if_stalefh_allowed() to set
no_verify=true on the saved PUTFH) with an additional op inserted
between the source PUTFH and SAVEFH. For example, SETATTR calls
fh_want_write() which dereferences fh_export->ex_path.mnt without
calling fh_verify() first, causing a NULL pointer dereference in the
nfsd kthread.

Fix this by gating the dispatch loop: when NFSD4_FH_FOREIGN is set
and fh_dentry is NULL, only OP_SAVEFH (needed for the inter-SSC flow)
and ops with ALLOWED_WITHOUT_FH (which don't need a resolved
filehandle) may proceed. All other ops receive nfserr_stale, per
RFC 7862 Section 15.2.3 which specifies that foreign filehandle
validation is deferred to the consuming operation and NFS4ERR_STALE
returned at that point.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < ffdc844e673d2bcb2af8c8c3eef8cdea59d0bf32
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < 00c84f4eec715e501efc080a5670114189e42507
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < 2d9846fd1c767920fddd4bde30eb35cd2969df13
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < 977e6f006a7a3ffc4216ae6034f768f8de6fd138
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < 35f248bd40b47b229d4999581df45b97daadd977
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < 311f7d926630940650447cbd1c932b076b40a6c4
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < bf4d338dc8625d70c7f2cb0657d66851a7ac9154
Status affected
Version b9e8638e3d9ed8334f1f7071e081860aac37e83e
Version < c59738a00aa51b16adc1b5ceb7c80877168efb4d
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.6
Status affected
Version 0
Version < 5.6
Status unaffected
Version <= 5.10.*
Version 5.10.270
Status unaffected
Version <= 5.15.*
Version 5.15.221
Status unaffected
Version <= 6.1.*
Version 6.1.188
Status unaffected
Version <= 6.6.*
Version 6.6.157
Status unaffected
Version <= 6.12.*
Version 6.12.109
Status unaffected
Version <= 6.18.*
Version 6.18.50
Status unaffected
Version <= 7.2.*
Version 7.2.4
Status unaffected
Version <= *
Version 7.3-rc1
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.67% 0.5
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 7.5 3.9 3.6
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/35f248bd40b47b229d4999581df45b97daadd977
https://git.kernel.org/stable/c/311f7d926630940650447cbd1c932b076b40a6c4
https://git.kernel.org/stable/c/bf4d338dc8625d70c7f2cb0657d66851a7ac9154
https://git.kernel.org/stable/c/c59738a00aa51b16adc1b5ceb7c80877168efb4d
https://git.kernel.org/stable/c/00c84f4eec715e501efc080a5670114189e42507
https://git.kernel.org/stable/c/2d9846fd1c767920fddd4bde30eb35cd2969df13
https://git.kernel.org/stable/c/977e6f006a7a3ffc4216ae6034f768f8de6fd138
https://git.kernel.org/stable/c/ffdc844e673d2bcb2af8c8c3eef8cdea59d0bf32