CVE-2026-89672

CVE-2026-89672

Critical · published September 12, 2026

CVSS v3.1
9.1
EPSS
1%
Percentile
43.5
In the wild
Unconfirmed
What it is

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

nfsd: gate nfs2 setacl by argp->mask

The NFSACL v2 SETACL path shares the decoder convention used by its

v3 sibling: nfsaclsvc_decode_setaclargs() fills in argp->acl_access

only when NFS_ACL is set in the request mask and argp->acl_default

only when NFS_DFACL is set, leaving the other pointer NULL because

the argument buffer is zeroed up to pc_argzero before decode.

nfsacld_proc_setacl() then hands both pointers to set_posix_acl()

unconditionally. set_posix_acl(idmap, dentry, type, NULL) is the VFS

"remove this ACL type" operation, so an omitted arm is

indistinguishable from an explicit request to delete that ACL. A

SETACL carrying only NFS_ACL silently strips the directory's default

ACL; mask=0 strips both.

This is the same defect just fixed in nfsd3_proc_setacl(); apply the

same remedy. Gate each set_posix_acl() call on its mask bit and

initialize error to 0 so that a request with neither bit set leaves

the on-disk ACLs untouched and returns success. The out_drop_lock

path and the unconditional posix_acl_release() in

nfsaclsvc_release_setacl() already tolerate the skipped arms.

The record
Technical detail
CVSS v3.1
9.1 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CVSS v4.0
Not supplied
EPSS
0.00523 · 43.5th percentile
Published
2026-09-12T00:19Z
References (5)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:45Z
    nfsd: gate nfs2 setacl by argp->mask
    cvelistv5