{"id":21593,"date":"2026-09-12T04:31:23","date_gmt":"2026-09-11T20:31:23","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89671"},"modified":"2026-09-12T04:31:23","modified_gmt":"2026-09-11T20:31:23","slug":"cve-2026-89671","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89671","title":{"rendered":"CVE-2026-89671 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: gate nfs3 setac"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfsd: gate nfs3 setacl by argp-&gt;mask<\/p>\n<p>nfsd3_proc_setacl() calls set_posix_acl() unconditionally for both<br \/>\nACL_TYPE_ACCESS and ACL_TYPE_DEFAULT, passing argp-&gt;acl_access and<br \/>\nargp-&gt;acl_default verbatim. The NFSv3 ACL decoder only populates<br \/>\nthose pointers when the corresponding mask bit is set:<\/p>\n<p>    nfs3svc_decode_setaclargs()<br \/>\n      if (args-&gt;mask &amp; NFS_ACL)    decode into acl_access<br \/>\n      if (args-&gt;mask &amp; NFS_DFACL)  decode into acl_default<br \/>\n      \/* otherwise the pointer stays NULL (pc_argzero) *\/<\/p>\n<p>    nfsd3_proc_setacl()<br \/>\n      set_posix_acl(.., ACL_TYPE_ACCESS,  argp-&gt;acl_access)<br \/>\n      set_posix_acl(.., ACL_TYPE_DEFAULT, argp-&gt;acl_default)<\/p>\n<p>set_posix_acl(idmap, dentry, type, NULL) is the VFS &#8220;remove this<br \/>\nACL type&#8221; operation. A NULL pointer that means &#8220;the client did not<br \/>\nsend this arm&#8221; is therefore indistinguishable from &#8220;the client<br \/>\nasked to remove this ACL&#8221;. A SETACL with mask=NFS_ACL silently<br \/>\ndrops the directory&#8217;s default ACL; mask=0 drops both.<\/p>\n<p>The sibling nfsd3_proc_getacl() already consults argp-&gt;mask before<br \/>\ntouching each arm; mirror that in setacl.<\/p>\n<p>Fix by wrapping each set_posix_acl() call in the matching mask bit<br \/>\ncheck and initializing error to 0 before inode_lock so that a<br \/>\nrequest with neither bit set leaves the on-disk ACLs untouched and<br \/>\nreturns nfs_ok. The out_drop_lock path and the unconditional<br \/>\nposix_acl_release() at out: are preserved; both NULL-tolerate the<br \/>\nskipped arms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfsd: gate nfs3 setacl by argp-&gt;mask<\/p>\n<p>nfsd3_proc_setacl() calls set_posix_acl() unconditionally for both<br \/>\nACL_TYPE_ACCESS and ACL_TY<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21593","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}