{"id":11114,"date":"2026-09-04T18:51:41","date_gmt":"2026-09-04T10:51:41","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74580"},"modified":"2026-09-04T18:51:41","modified_gmt":"2026-09-04T10:51:41","slug":"cve-2026-74580","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74580","title":{"rendered":"CVE-2026-74580 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvhost: reset the vrin"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost: reset the vring metadata cache on vring reconfiguration<\/p>\n<p>vq-&gt;meta_iotlb[] caches the vhost_iotlb_map that backs each vring<br \/>\nmetadata region, and iotlb_access_ok() returns early on a cache hit,<br \/>\ntaking the hit as proof that the region has already been validated:<\/p>\n<p>\tif (vhost_vq_meta_fetch(vq, addr, len, type))<br \/>\n\t\treturn true;<\/p>\n<p>The cache is reset on VHOST_IOTLB_UPDATE and VHOST_IOTLB_INVALIDATE, on<br \/>\ndevice IOTLB (re)initialisation and on vq reset, but not when<br \/>\nVHOST_SET_VRING_ADDR replaces vq-&gt;desc, vq-&gt;avail and vq-&gt;used, nor when<br \/>\nVHOST_SET_VRING_NUM changes the region sizes.<\/p>\n<p>With a device IOTLB attached both ioctls are accepted while the vq is<br \/>\nlive, and neither validates the addresses at ioctl time: vq_access_ok()<br \/>\nand vq_log_used_access_ok() return true early because the addresses are<br \/>\nGIOVAs, deferring validation to prefetch time.  Once the cache has been<br \/>\npopulated that deferred validation no longer runs &#8212; vq_meta_prefetch()<br \/>\nhits the stale entry and returns true &#8212; and vhost_vq_meta_fetch() keeps<br \/>\ntranslating through the old mapping as<\/p>\n<p>\tmap-&gt;addr + addr &#8211; map-&gt;start<\/p>\n<p>for an address the mapping no longer covers.  vhost_copy_to_user() and<br \/>\nvhost_copy_from_user() consume the result with __copy_to_user() and<br \/>\n__copy_from_user(), which do not check it either, so a subsequent used<br \/>\nring update or descriptor fetch accesses memory outside the region the<br \/>\nIOTLB actually maps.<\/p>\n<p>Reset the metadata cache whenever the vring is reconfigured, so the new<br \/>\naddresses are pushed back through iotlb_access_ok()&#8217;s slow path.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost: reset the vring metadata cache on vring reconfiguration<\/p>\n<p>vq-&gt;meta_iotlb[] caches the vhost_iotlb_map that backs each vring<br \/>\nm<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11114","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11114","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=11114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}