{"id":7310,"date":"2026-09-04T18:49:30","date_gmt":"2026-09-04T10:49:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74359"},"modified":"2026-09-04T18:49:30","modified_gmt":"2026-09-04T10:49:30","slug":"cve-2026-74359","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74359","title":{"rendered":"CVE-2026-74359 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nconfigfs_lookup(): do"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>configfs_lookup(): don&#8217;t leave -&gt;s_dentry dangling on failure<\/p>\n<p>Normally -&gt;s_dentry is cleared when dentry it&#8217;s pointing to becomes<br \/>\nnegative (on eviction, realistically).  However, that only happens<br \/>\nif dentry gets to be positive in the first place; in case of inode<br \/>\nallocation failure dentry never becomes positive, so -&gt;d_iput()<br \/>\nis not called at all.<\/p>\n<p>We do part of what normally would&#8217;ve been done by configfs_d_iput()<br \/>\n(dropping the reference to configfs_dirent) manually, but we do<br \/>\nnot clear -&gt;s_dentry there.  Sloppy as it is, it does not matter in<br \/>\ncase of configfs_create_{dir,link}() &#8211; there configfs_dirent does<br \/>\nnot survive dropping the sole reference to it.<\/p>\n<p>However, for configfs_lookup() it *does* survive, with a dangling<br \/>\npointer to soon to be freed dentry sitting it its -&gt;s_dentry.<\/p>\n<p>Subsequent getdents(2) in that directory will end up dereferencing<br \/>\nthat pointer in order to pick the inode number.  Use after free&#8230;<\/p>\n<p>This is the minimal fix; the right approach is to set the linkage<br \/>\nbetween dentry and configfs_dirent only after we know that we have<br \/>\nan inode, but that takes more surgery and the bug had been there<br \/>\nsince 2006, so&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>configfs_lookup(): don&#8217;t leave -&gt;s_dentry dangling on failure<\/p>\n<p>Normally -&gt;s_dentry is cleared when dentry it&#8217;s pointing to becomes<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7310","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7310","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=7310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}