{"id":21634,"date":"2026-09-12T04:31:27","date_gmt":"2026-09-11T20:31:27","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89712"},"modified":"2026-09-12T04:31:27","modified_gmt":"2026-09-11T20:31:27","slug":"cve-2026-89712","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89712","title":{"rendered":"CVE-2026-89712 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: restart ssc_exp"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock<\/p>\n<p>nfsd4_ssc_expire_umount() walks nn-&gt;nfsd_ssc_mount_list with<br \/>\nlist_for_each_entry_safe(ni, tmp, &#8230;).  For each expired entry it<br \/>\nsets nsui_busy = true, drops nfsd_ssc_lock to run mntput() on the<br \/>\nsource vfsmount, then reacquires the lock to list_del + kfree the<br \/>\nentry and continue iterating via the macro&#8217;s saved tmp pointer.<\/p>\n<p>The nsui_busy flag protects the current ni from concurrent<br \/>\nnfsd4_ssc_setup_dul() finders during the lock-drop window, but it<br \/>\ndoes not pin tmp.  Another nfsd RPC thread that fails its source-<br \/>\nserver mount and reaches nfsd4_ssc_cancel_dul() will, during that<br \/>\nsame window, take nfsd_ssc_lock, list_del + kfree its own ssc_umount<br \/>\nitem, and release the lock.  If that item is the saved tmp of the<br \/>\nexpire walk, the next iteration dereferences a freed<br \/>\nnfsd4_ssc_umount_item.<\/p>\n<p>Restart the walk from the head after the mntput() unlock window so<br \/>\nno saved next pointer survives the lock-drop.  The list is bounded<br \/>\nby the number of active inter-server source mounts (typically small)<br \/>\nand the expire delayed-work runs periodically rather than per-IO,<br \/>\nso the restart is cheap.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock<\/p>\n<p>nfsd4_ssc_expire_umount() walks nn-&gt;nfsd_ssc_mount_list with<br \/>\nlis<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21634","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21634","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=21634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}