{"id":7306,"date":"2026-09-04T18:49:30","date_gmt":"2026-09-04T10:49:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74356"},"modified":"2026-09-04T18:49:30","modified_gmt":"2026-09-04T10:49:30","slug":"cve-2026-74356","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74356","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-7306","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7306","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=7306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}