{"id":7268,"date":"2026-09-04T18:49:29","date_gmt":"2026-09-04T10:49:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74321"},"modified":"2026-09-04T18:49:29","modified_gmt":"2026-09-04T10:49:29","slug":"cve-2026-74321","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74321","title":{"rendered":"CVE-2026-74321 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix invalid po"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>btrfs: fix invalid pointer dereference in __btrfs_run_delayed_refs()<\/p>\n<p>In the beginning of the loop, we try to obtain a locked delayed ref head,<br \/>\nif &#8216;locked_ref&#8217; is currently NULL, by calling btrfs_select_ref_head(),<br \/>\nwhich can return an error pointer. If the error pointer is -EAGAIN we do<br \/>\na continue and go back to the beginning of the loop, which will not try<br \/>\nagain to call btrfs_select_ref_head() since &#8216;locked_ref&#8217; is no longer<br \/>\nNULL but it&#8217;s ERR_PTR(-EAGAIN), and then we do:<\/p>\n<p>   spin_lock(&amp;locked_ref-&gt;lock);<\/p>\n<p>against a ERR_PTR(-EAGAIN) value, generating an invalid pointer<br \/>\ndereference.<\/p>\n<p>Fix this by ensuring that &#8216;locked_ref&#8217; is set to NULL when<br \/>\nbtrfs_select_ref_head() returns ERR_PTR(-EAGAIN) and incrementing &#8216;count&#8217;<br \/>\nas well, to prevent infinite looping. We do this by doing a goto to the<br \/>\nbottom of the loop that already sets &#8216;locked_ref&#8217; to NULL and does a<br \/>\ncond_resched(), with an increment to &#8216;count&#8217; right before the goto.<br \/>\nThese measures were in place before the refactoring in commit 0110a4c43451<br \/>\n(&#8220;btrfs: refactor __btrfs_run_delayed_refs loop&#8221;) but were unintentionally<br \/>\nlost afterwards.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>btrfs: fix invalid pointer dereference in __btrfs_run_delayed_refs()<\/p>\n<p>In the beginning of the loop, we try to obtain a locked delay<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7268","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7268","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=7268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}