{"id":26047,"date":"2026-09-18T04:32:16","date_gmt":"2026-09-17T20:32:16","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93190"},"modified":"2026-09-18T04:32:16","modified_gmt":"2026-09-17T20:32:16","slug":"cve-2026-93190","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93190","title":{"rendered":"CVE-2026-93190 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nplatform\/chrome: cros"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>platform\/chrome: cros_ec_typec: Reject out-of-bounds PD cap count<\/p>\n<p>cros_typec_register_partner_pdos() copies the partner PDOs from the EC<br \/>\nTYPEC_STATUS response into the fixed caps_desc.pdo[PDO_MAX_OBJECTS] array.<\/p>\n<p>\tmemcpy(caps_desc.pdo, resp-&gt;source_cap_pdos,<br \/>\n\t       sizeof(u32) * resp-&gt;source_cap_count);<br \/>\n\t&#8230;<br \/>\n\tmemcpy(caps_desc.pdo, resp-&gt;sink_cap_pdos,<br \/>\n\t       sizeof(u32) * resp-&gt;sink_cap_count);<\/p>\n<p>PDO_MAX_OBJECTS is 7. source_cap_count and sink_cap_count are u8 fields<br \/>\nfrom the EC. The only check is that they are not both zero. If either is<br \/>\nlarger than 7, the memcpy writes past the end of the array on the stack.<br \/>\nA count of 255 overflows it by about 1 KB. The EC source arrays are only<br \/>\nseven entries wide. A larger count reads past them too.<\/p>\n<p>The ChromeOS EC firmware caps these counts today, so a compliant setup<br \/>\ndoes not hit this. The kernel should still validate these values rather<br \/>\nthan trust them.<\/p>\n<p>Validate the counts in cros_typec_register_partner_pdos() next to the<br \/>\nmemcpy. Skip the PDO registration if either count is above PDO_MAX_OBJECTS.<br \/>\nThe rest of cros_typec_handle_status() still runs so events are handled<br \/>\nand cleared.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>platform\/chrome: cros_ec_typec: Reject out-of-bounds PD cap count<\/p>\n<p>cros_typec_register_partner_pdos() copies the partner PDOs from <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-26047","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/26047","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=26047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=26047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=26047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}