{"id":8586,"date":"2026-09-04T18:50:00","date_gmt":"2026-09-04T10:50:00","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74356-2"},"modified":"2026-09-04T18:50:00","modified_gmt":"2026-09-04T10:50:00","slug":"cve-2026-74356-2","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74356-2","title":{"rendered":"CVE-2026-74356 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvhost: fix vhost_get_"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost: fix vhost_get_avail_idx for a non empty ring<\/p>\n<p>vhost_get_avail_idx is supposed to report whether it has updated<br \/>\nvq-&gt;avail_idx. Instead, it returns whether all entries have been<br \/>\nconsumed, which is usually the same. But not always &#8211; in<br \/>\ndrivers\/vhost\/net.c and when mergeable buffers have been enabled, the<br \/>\ndriver checks whether the combined entries are big enough to store an<br \/>\nincoming packet. If not, the driver re-enables notifications with<br \/>\navailable entries still in the ring. The incorrect return value from<br \/>\nvhost_get_avail_idx propagates through vhost_enable_notify and causes<br \/>\nthe host to livelock if the guest is not making progress, as vhost will<br \/>\nimmediately disable notifications and retry using the available entries.<\/p>\n<p>This goes back to commit d3bb267bbdcb (&#8220;vhost: cache avail index in<br \/>\nvhost_enable_notify()&#8221;) which changed vhost_enable_notify() to compare<br \/>\nthe freshly read avail index against vq-&gt;last_avail_idx instead of the<br \/>\npreviously cached vq-&gt;avail_idx. Commit 7ad472397667 (&#8220;vhost: move<br \/>\nsmp_rmb() into vhost_get_avail_idx()&#8221;) then carried over the same<br \/>\ncomparison when refactoring vhost_enable_notify() to call the unified<br \/>\nvhost_get_avail_idx().<\/p>\n<p>The obvious fix is to make vhost_get_avail_idx do what the comment<br \/>\nsays it does and report whether new entries have been added.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost: fix vhost_get_avail_idx for a non empty ring<\/p>\n<p>vhost_get_avail_idx is supposed to report whether it has updated<br \/>\nvq-&gt;avail_idx<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-8586","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/8586","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=8586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}