PT-2026-61279 · Linux · Linux
CVE-2026-63962
·
Publicado
2026-07-19
·
Atualizado
2026-07-19
Nenhuma
Não há classificações de severidade ou métricas disponíveis. Quando houver, atualizaremos as informações correspondentes na página.
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: tcpm: bound altmode desc[] per iteration in svdm consume modes()
svdm consume modes() checks pmdata->altmodes against the array size once
before the loop over the count, but forgot to check the bound at every
point in the loop.
In the well-behaved SVDM discovery flow this is harmless because each of
at most SVID DISCOVERY MAX SVIDs contributes at most MODE DISCOVERY MAX
modes, exactly filling altmode desc[ALTMODE DISCOVERY MAX]. But the
CMDT RSP ACK handler in tcpm pd svdm() does not correlate an incoming
ACK with any request the port actually sent. Once port->partner is set,
an unsolicited Discover Modes ACK is consumed unconditionally. A broken
or malicious port partner can therefore drive altmodes to
ALTMODE DISCOVERY MAX - 1 via the normal flow, and then send one extra
Discover Modes ACK with seven VDOs. Because the pre-loop check passes,
the loop could then writes up to five entries past altmode desc[]. For
mode data prime the next field in struct tcpm port is the
partner altmode[] pointer array, which then receives partner-chosen
SVID/VDO bytes.
Move the bound check inside the loop so the array can never be indexed
past ALTMODE DISCOVERY MAX regardless of how many VDOs the partner
supplies or how the function was reached.
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Linux