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

nfsd: fix posix_acl leak on SETACL decode failure

nfsaclsvc_decode_setaclargs() and nfs3svc_decode_setaclargs() each
call nfs_stream_decode_acl() twice, first for NFS_ACL and then for
NFS_DFACL. Each successful call transfers ownership of a freshly
allocated posix_acl into argp->acl_access or argp->acl_default. If
the first call succeeds but the second fails, the decoder returns
false and argp->acl_access is left dangling.

ACLPROC2_SETACL.pc_release was wired to nfssvc_release_attrstat and
ACLPROC3_SETACL.pc_release was wired to nfs3svc_release_fhandle.
Both only call fh_put() and have no knowledge of the ACL fields on
argp. The posix_acl_release() pairs sat at the out: labels inside
nfsacld_proc_setacl() and nfsd3_proc_setacl(), but svc_process()
skips pc_func when pc_decode returns false, so that cleanup is
unreachable on decode failure:

svc_process_common()
pc_decode() /* decode_setaclargs: false */
/* pc_func skipped */
pc_release() /* fh_put only -- ACLs leaked */

The orphaned posix_acl is leaked for the lifetime of the server.

Fix by adding nfsaclsvc_release_setacl() and nfs3svc_release_setacl(),
which release both argp->acl_access and argp->acl_default in addition
to fh_put(), and wiring them as pc_release for their respective SETACL
procedures. pc_release runs on every path svc_process() takes after
decode, including decode failure, so the posix_acl_release() pairs are
removed from the proc functions' out: labels to keep ownership in one
place. This matches the existing release_getacl() pattern used by
the sibling GETACL procedures.
Published: 2026-07-19
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the Linux NFS daemon’s handling of SETACL operations. When the first ACL decode succeeds but the second fails, the decoder returns false and the first allocated posix_acl remains in memory without being freed. This creates a memory leak (CWE-401) and a resource leak (CWE-772), allowing the leaking objects to persist for the lifetime of the server. Accumulation of such leaks can eventually exhaust system memory and cripple the NFS service, effectively resulting in a denial‑of‑service situation for clients that can trigger the failure path.

Affected Systems

All Linux kernel releases that include an NFS server but do not yet contain the CVE‑2026‑53397 patch are affected. The flaw is triggered during processing of SETACL requests, so any host running a vulnerable kernel and exposing an NFS export is at risk, regardless of the NFS protocol version. No specific kernel versions were listed in the advisory, so administrators should assume all unpatched kernels prior to the fix are vulnerable.

Risk and Exploitability

The CVSS score of 7.5 flags the flaw as high severity. The EPSS score of less than 1% indicates that exploitation is currently uncommon, and the vulnerability is not listed in the CISA KEV catalog. The flaw is reachable by remote actors who can send crafted SETACL requests to the NFS service; no additional privileges beyond access to the service are required. Once a successful decode failure occurs, the kernel will retain the leaked ACL object, gradually consuming memory until the service becomes unable to serve requests, leading to success of a denial‑of‑service attack.

Generated by OpenCVE AI on August 12, 2026 at 09:57 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that contains the CVE‑2026‑53397 patch, which adds proper cleanup for ACL fields in SETACL operations.
  • After upgrading, restart the NFS service or reboot the host to load the updated kernel code.
  • If an immediate kernel upgrade is not possible, employ firewall rules or adjust NFS export options to block or refuse SETACL operations from untrusted clients, thereby preventing repeated decode failures.

Generated by OpenCVE AI on August 12, 2026 at 09:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4700-1 linux-6.1 security update
Debian DLA Debian DLA DLA-4717-1 linux security update
History

Tue, 21 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics 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'}


Sun, 19 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nfsd: fix posix_acl leak on SETACL decode failure nfsaclsvc_decode_setaclargs() and nfs3svc_decode_setaclargs() each call nfs_stream_decode_acl() twice, first for NFS_ACL and then for NFS_DFACL. Each successful call transfers ownership of a freshly allocated posix_acl into argp->acl_access or argp->acl_default. If the first call succeeds but the second fails, the decoder returns false and argp->acl_access is left dangling. ACLPROC2_SETACL.pc_release was wired to nfssvc_release_attrstat and ACLPROC3_SETACL.pc_release was wired to nfs3svc_release_fhandle. Both only call fh_put() and have no knowledge of the ACL fields on argp. The posix_acl_release() pairs sat at the out: labels inside nfsacld_proc_setacl() and nfsd3_proc_setacl(), but svc_process() skips pc_func when pc_decode returns false, so that cleanup is unreachable on decode failure: svc_process_common() pc_decode() /* decode_setaclargs: false */ /* pc_func skipped */ pc_release() /* fh_put only -- ACLs leaked */ The orphaned posix_acl is leaked for the lifetime of the server. Fix by adding nfsaclsvc_release_setacl() and nfs3svc_release_setacl(), which release both argp->acl_access and argp->acl_default in addition to fh_put(), and wiring them as pc_release for their respective SETACL procedures. pc_release runs on every path svc_process() takes after decode, including decode failure, so the posix_acl_release() pairs are removed from the proc functions' out: labels to keep ownership in one place. This matches the existing release_getacl() pattern used by the sibling GETACL procedures.
Title nfsd: fix posix_acl leak on SETACL decode failure
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T04:50:49.240Z

Reserved: 2026-06-09T07:44:35.402Z

Link: CVE-2026-53397

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-07-19T12:16:50.793

Modified: 2026-08-17T05:17:14.277

Link: CVE-2026-53397

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-53397 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-12T10:00:01Z

Weaknesses
  • CWE-401

    Missing Release of Memory after Effective Lifetime

  • CWE-772

    Missing Release of Resource after Effective Lifetime