Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-63962

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/07/2026
Última modificación:
30/07/2026

Descripción

*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> usb: typec: tcpm: bound altmode_desc[] per iteration in svdm_consume_modes()<br /> <br /> svdm_consume_modes() checks pmdata-&gt;altmodes against the array size once<br /> before the loop over the count, but forgot to check the bound at every<br /> point in the loop.<br /> <br /> In the well-behaved SVDM discovery flow this is harmless because each of<br /> at most SVID_DISCOVERY_MAX SVIDs contributes at most MODE_DISCOVERY_MAX<br /> modes, exactly filling altmode_desc[ALTMODE_DISCOVERY_MAX]. But the<br /> CMDT_RSP_ACK handler in tcpm_pd_svdm() does not correlate an incoming<br /> ACK with any request the port actually sent. Once port-&gt;partner is set,<br /> an unsolicited Discover Modes ACK is consumed unconditionally. A broken<br /> or malicious port partner can therefore drive altmodes to<br /> ALTMODE_DISCOVERY_MAX - 1 via the normal flow, and then send one extra<br /> Discover Modes ACK with seven VDOs. Because the pre-loop check passes,<br /> the loop could then writes up to five entries past altmode_desc[]. For<br /> mode_data_prime the next field in struct tcpm_port is the<br /> partner_altmode[] pointer array, which then receives partner-chosen<br /> SVID/VDO bytes.<br /> <br /> Move the bound check inside the loop so the array can never be indexed<br /> past ALTMODE_DISCOVERY_MAX regardless of how many VDOs the partner<br /> supplies or how the function was reached.

Impacto