In the Linux kernel, the following vulnerability has been resolved: nfsd: gate nfs3 setacl by argp->mask nfsd3_proc_setacl() calls set_posix_acl()… (CVE-2026-89671)
A vulnerability in the Linux kernel's NFSv3 server implementation (nfsd) related to ACL (Access Control List) handling has been resolved. The issue arises because the function nfsd3_proc_setacl() calls set_posix_acl() unconditionally for both ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT, passing pointers that may be NULL. This causes ambiguity between a client not sending an ACL arm and a client requesting its removal, potentially leading to unintended ACL removals. The fix ensures that set_posix_acl() is only called when the corresponding mask bit is set, preventing accidental ACL drops.
AI Analysis
Technical Summary
In the Linux kernel's NFSv3 server code, the function nfsd3_proc_setacl() calls set_posix_acl() for both ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT without checking if the client actually provided those ACLs. The NFSv3 ACL decoder sets pointers to ACL data only if the corresponding mask bits (NFS_ACL or NFS_DFACL) are set; otherwise, these pointers remain NULL. Since set_posix_acl() interprets a NULL pointer as a request to remove that ACL type, a client request with mask=NFS_ACL unintentionally removes the directory's default ACL, and a request with mask=0 removes both ACLs. The vulnerability is fixed by adding checks for the mask bits before calling set_posix_acl(), ensuring ACLs are only modified when explicitly requested.
Potential Impact
This vulnerability can cause unintended removal of ACLs on directories when clients send SETACL requests with certain mask values. Specifically, a SETACL request with mask=NFS_ACL silently drops the default ACL, and a request with mask=0 drops both access and default ACLs. This could lead to loss of intended access controls on files or directories, potentially affecting system security and access permissions.
Mitigation Recommendations
A fix has been implemented in the Linux kernel that adds mask bit checks before calling set_posix_acl() in nfsd3_proc_setacl(), preventing unintended ACL removals. Users should apply the official kernel update that includes this fix. Since this is a kernel-level vulnerability, upgrading to a patched kernel version is the recommended remediation. Patch status is not explicitly stated in the input; users should consult the vendor or Linux kernel advisory for the exact fixed versions and apply updates accordingly.
In the Linux kernel, the following vulnerability has been resolved: nfsd: gate nfs3 setacl by argp->mask nfsd3_proc_setacl() calls set_posix_acl()… (CVE-2026-89671)
Description
A vulnerability in the Linux kernel's NFSv3 server implementation (nfsd) related to ACL (Access Control List) handling has been resolved. The issue arises because the function nfsd3_proc_setacl() calls set_posix_acl() unconditionally for both ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT, passing pointers that may be NULL. This causes ambiguity between a client not sending an ACL arm and a client requesting its removal, potentially leading to unintended ACL removals. The fix ensures that set_posix_acl() is only called when the corresponding mask bit is set, preventing accidental ACL drops.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
In the Linux kernel's NFSv3 server code, the function nfsd3_proc_setacl() calls set_posix_acl() for both ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT without checking if the client actually provided those ACLs. The NFSv3 ACL decoder sets pointers to ACL data only if the corresponding mask bits (NFS_ACL or NFS_DFACL) are set; otherwise, these pointers remain NULL. Since set_posix_acl() interprets a NULL pointer as a request to remove that ACL type, a client request with mask=NFS_ACL unintentionally removes the directory's default ACL, and a request with mask=0 removes both ACLs. The vulnerability is fixed by adding checks for the mask bits before calling set_posix_acl(), ensuring ACLs are only modified when explicitly requested.
Potential Impact
This vulnerability can cause unintended removal of ACLs on directories when clients send SETACL requests with certain mask values. Specifically, a SETACL request with mask=NFS_ACL silently drops the default ACL, and a request with mask=0 drops both access and default ACLs. This could lead to loss of intended access controls on files or directories, potentially affecting system security and access permissions.
Mitigation Recommendations
A fix has been implemented in the Linux kernel that adds mask bit checks before calling set_posix_acl() in nfsd3_proc_setacl(), preventing unintended ACL removals. Users should apply the official kernel update that includes this fix. Since this is a kernel-level vulnerability, upgrading to a patched kernel version is the recommended remediation. Patch status is not explicitly stated in the input; users should consult the vendor or Linux kernel advisory for the exact fixed versions and apply updates accordingly.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-j2pv-cprg-p57x
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-89671"]
Threat ID: 6aa4a00455bf5e2cf5a8662a
Added to database: 09/12/2026, 00:42:44 UTC
Last enriched: 09/12/2026, 00:57:25 UTC
Last updated: 09/12/2026, 00:57:25 UTC
Views: 2
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.