{"id":21632,"date":"2026-09-12T04:31:26","date_gmt":"2026-09-11T20:31:26","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89710"},"modified":"2026-09-12T04:31:26","modified_gmt":"2026-09-11T20:31:26","slug":"cve-2026-89710","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89710","title":{"rendered":"CVE-2026-89710 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nNFSv4.1: fix layout s"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path<\/p>\n<p>When the server returns a new layout stateid while a valid one is still<br \/>\nheld, pnfs_layout_process() calls pnfs_mark_matching_lsegs_return() on<br \/>\nthe on-stack free_me list and jumps to out_forget. Segments whose<br \/>\nreference count drops to zero are unlinked from lo-&gt;plh_segs and moved<br \/>\nto free_me by mark_lseg_invalid(); for an idle cached segment the layout<br \/>\nheader holds the only reference, so this happens on the first decrement.<\/p>\n<p>out_forget never drains free_me &#8212; only the success path calls<br \/>\npnfs_free_lseg_list().<\/p>\n<p>Commit 814b84971388 (&#8220;pNFS\/NFSv4: Fix a layout segment leak in<br \/>\npnfs_layout_process()&#8221;) added the drain; commit 08bd8dbe8882<br \/>\n(&#8220;pNFS\/NFSv4: Try to return invalid layout in pnfs_layout_process()&#8221;)<br \/>\nremoved it while switching the destination to lo-&gt;plh_return_segs, which<br \/>\nis drained elsewhere. Commit fb700ef02676 (&#8220;NFSv4.1: Simplify layout<br \/>\nreturn in pnfs_layout_process()&#8221;) switched the destination back to<br \/>\nfree_me without restoring the drain.<\/p>\n<p>Restore the pnfs_free_lseg_list() call.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path<\/p>\n<p>When the server returns a new layout stateid while a val<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21632","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21632","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=21632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}