{"id":12348,"date":"2026-09-04T18:54:17","date_gmt":"2026-09-04T10:54:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80700"},"modified":"2026-09-04T18:54:17","modified_gmt":"2026-09-04T10:54:17","slug":"cve-2026-80700","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80700","title":{"rendered":"CVE-2026-80700 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/vmwgfx: validate"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/vmwgfx: validate external BO copy bounds for both stride paths<\/p>\n<p>vmw_external_bo_copy() trusts caller-supplied offsets, strides, and<br \/>\nheights and operates on imported dma-buf vmaps:<\/p>\n<p>  &#8211; The equal-stride memcpy() bound was clamped after subtracting the<br \/>\n    offsets from dst_size and src_size; an offset larger than the BO<br \/>\n    size wraps the unsigned subtraction to a huge value and the<br \/>\n    resulting memcpy() runs off the end of the vmap.  dst_stride *<br \/>\n    height is also a u32 multiplication that can overflow.<br \/>\n  &#8211; The non-equal-stride row-by-row path had no bound at all.  The<br \/>\n    loop touches bytes through offset + (height &#8211; 1) * stride +<br \/>\n    width_in_bytes, with only a WARN_ON(dst_stride &lt; width_in_bytes),<br \/>\n    and could likewise step past the end of either mapping.<\/p>\n<p>The offsets and strides are derived from STDU\/SOU plane state, so a<br \/>\nconfigured CRTC submitting a crafted atomic commit on an imported<br \/>\nframebuffer can reach this path.<\/p>\n<p>Validate the exact row-copy endpoint against each BO&#039;s size up front<br \/>\nusing check_mul_overflow() and check_add_overflow().  Use the bulk<br \/>\nmemcpy() path only when width_in_bytes covers the whole stride;<br \/>\notherwise copy one row at a time so partial-row updates near the bottom<br \/>\nof a framebuffer remain valid.  Also reject zero strides and stride &lt;<br \/>\nwidth_in_bytes, both of which the row-by-row path cannot represent<br \/>\nsafely.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/vmwgfx: validate external BO copy bounds for both stride paths<\/p>\n<p>vmw_external_bo_copy() trusts caller-supplied offsets, strides,<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-12348","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/12348","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=12348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}