{"id":11281,"date":"2026-09-04T18:53:08","date_gmt":"2026-09-04T10:53:08","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74713"},"modified":"2026-09-04T18:53:08","modified_gmt":"2026-09-04T10:53:08","slug":"cve-2026-74713","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74713","title":{"rendered":"CVE-2026-74713 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvhost_iotlb: bound ma"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost_iotlb: bound map allocation in add_range<\/p>\n<p>vhost_iotlb_add_range_ctx() only retires an old entry when the table<br \/>\nhas a non-zero limit, has exactly reached that limit and has<br \/>\nVHOST_IOTLB_FLAG_RETIRE set. Non-retiring tables can keep allocating<br \/>\nentries after reaching their configured limit.<\/p>\n<p>Existing vhost devices allocate their IOTLB with max_iotlb_entries from<br \/>\nvhost.c, which defaults to 2048 and is tunable by module parameter. Use<br \/>\nthe caller-provided limit at the allocation point instead of adding a<br \/>\nseparate default in the common IOTLB helper, and reject non-positive<br \/>\nvalues in vhost paths that can report an error.<\/p>\n<p>Other vhost IOTLB users should not create zero-limit tables when entries<br \/>\ncan be populated from userspace or guest-controlled requests. Add<br \/>\ncaller-side max_iotlb_entries parameters for mlx5 vDPA, VDUSE and<br \/>\nvhost-vDPA. Reject non-positive VDUSE and vhost-vDPA values, and require<br \/>\nat least two entries for vdpa_sim and mlx5 vDPA paths that install<br \/>\nfull-range mappings, since those mappings are split into two IOTLB<br \/>\nentries.<\/p>\n<p>Handle full-range mappings in the common helper by checking that the<br \/>\nIOTLB can hold both split entries before inserting the first half. This<br \/>\navoids returning an error after leaving a half mapping behind.<\/p>\n<p>When the table is full, keep the existing retire behavior for retiring<br \/>\ntables and return -ENOSPC for non-retiring tables. Reuse the retired map<br \/>\nnode instead of freeing it and allocating a replacement, so a stream of<br \/>\nIOTLB updates cannot keep forcing GFP_ATOMIC allocations after the table<br \/>\nhas reached its limit. If a zero-limit IOTLB still reaches the common<br \/>\nhelper, treat it as a configuration error and return -EINVAL.<\/p>\n<p>I found this bug myself, though the patch was written with AI assistance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vhost_iotlb: bound map allocation in add_range<\/p>\n<p>vhost_iotlb_add_range_ctx() only retires an old entry when the table<br \/>\nhas a non-zero<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11281","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11281","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=11281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}