{"id":21582,"date":"2026-09-12T04:31:22","date_gmt":"2026-09-11T20:31:22","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89660"},"modified":"2026-09-12T04:31:22","modified_gmt":"2026-09-11T20:31:22","slug":"cve-2026-89660","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89660","title":{"rendered":"CVE-2026-89660 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Prevent client"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>NFSD: Prevent client use-after-free during admin state revocation<\/p>\n<p>A stateid holds only a bare pointer to its nfs4_client; a stateid<br \/>\nreference does not pin it.  The client survives only because<br \/>\n__destroy_client() drains its stateids before free_client() runs.<\/p>\n<p>nfsd4_revoke_states() drops nn-&gt;client_lock across revoke_one_stid(),<br \/>\nwhich dereferences the client to revoke a stateid and read<br \/>\nclp-&gt;cl_minorversion.  A teardown racing the dropped lock can free<br \/>\nthe client first.<\/p>\n<p>Pinning cl_rpc_users under client_lock blocks the DESTROY_CLIENTID and<br \/>\nEXCHANGE_ID teardown, which refuses while cl_rpc_users is non-zero.<br \/>\nforce_expire_client() ignores it: once its wait for cl_rpc_users to<br \/>\nreach zero has passed, a later pin goes unnoticed.<\/p>\n<p>Under client_lock, skip a client whose cl_time is already zero &#8212;<br \/>\nforce_expire_client() clears it there before waiting &#8212; otherwise pin<br \/>\ncl_rpc_users before dropping the lock.  The walk then either sees the<br \/>\nexpiry and skips, or pins in time for that wait to cover the revoke.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>NFSD: Prevent client use-after-free during admin state revocation<\/p>\n<p>A stateid holds only a bare pointer to its nfs4_client; a statei<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21582","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21582","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=21582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}