KernelScan.io

HIGH Introduced in 5.6

nfsd CopySetup Leak

CVE-2026-89680

CVSS 7.5 / 10.0 NVD

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

KernelScan AI6.5MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix nfsd_file leak on inter-server COPY setup failure When nfsd4_setup_inter_ssc() fails, nfsd4_copy() returns nfserr_offload_denied directly, bypassing the out: label where release_copy_files() would drop the nf_dst reference taken by nfs4_preprocess_stateid_op(). Each failed inter-server COPY leaks one nfsd_file, pinning file/inode/dentry/vfsmount. Fix by setting status and jumping to out: instead of returning directly.

02

Engine v0.6.0

Risk summary

An authenticated NFS client can repeatedly trigger a failed inter-server or intra-server COPY operation, each time leaking a kernel file reference that pins the underlying file, inode, dentry, and mount. Over time this exhausts server memory and filesystem resources, leading to denial of service. The risk applies to any system running the NFS server with the COPY operation enabled.

Affectedfs/nfsd/nfs4proc.c (nfsd)

Vulnerability analysis

When an NFSv4 COPY operation fails during inter-server or intra-server source setup, the error-handling path returns immediately instead of jumping to the normal cleanup label, skipping the routine that releases the destination file reference acquired earlier in the request. Each failed COPY therefore leaks one kernel file object, permanently pinning the associated file, inode, dentry, and mount point. An authenticated NFS client can trigger this repeatedly by sending COPY compounds whose setup fails, gradually exhausting server memory and filesystem resources until the NFS server or the entire kernel becomes unresponsive. The fix routes all copy-setup error paths through the existing cleanup label so the reference is always released. The vulnerable code path is reachable from any network client that can issue NFSv4 COPY operations and requires the server to have the inter-server copy offload feature enabled for the inter-server variant; the intra-server variant is reachable without that parameter.

03

BranchIntroducedFixed inPatch commit
6.125.66.12.1091a6a41b84845
6.185.66.18.50424d5c95108a
6.65.66.6.160ab949252fdf1
7.25.67.2.46ed8d6de7ec9
mainline5.67.388a76145451d
cip/6.125.66.12.111-cip321a6a41b84845

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Affected — no CIP fix yet (latest 6.1.189-cip61)
cip/6.1-rtAffected — no CIP fix yet (latest 6.1.189-cip61-rt32)
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)