// For flags

CVE-2024-26995

usb: typec: tcpm: Correct the PDO counting in pd_set

Severity Score

"-"
*CVSS v-

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

In the Linux kernel, the following vulnerability has been resolved:

usb: typec: tcpm: Correct the PDO counting in pd_set

Off-by-one errors happen because nr_snk_pdo and nr_src_pdo are
incorrectly added one. The index of the loop is equal to the number of
PDOs to be updated when leaving the loop and it doesn't need to be added
one.

When doing the power negotiation, TCPM relies on the "nr_snk_pdo" as
the size of the local sink PDO array to match the Source capabilities
of the partner port. If the off-by-one overflow occurs, a wrong RDO
might be sent and unexpected power transfer might happen such as over
voltage or over current (than expected).

"nr_src_pdo" is used to set the Rp level when the port is in Source
role. It is also the array size of the local Source capabilities when
filling up the buffer which will be sent as the Source PDOs (such as
in Power Negotiation). If the off-by-one overflow occurs, a wrong Rp
level might be set and wrong Source PDOs will be sent to the partner
port. This could potentially cause over current or port resets.

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: usb: typec: tcpm: corrija el recuento de PDO en pd_set Los errores off-by-one ocurren porque nr_snk_pdo y nr_src_pdo se agregaron incorrectamente. El índice del bucle es igual al número de PDO que se actualizarán al salir del bucle y no es necesario agregar uno. Al realizar la negociación de energía, TCPM se basa en "nr_snk_pdo" como el tamaño de la matriz de PDO del receptor local para que coincida con las capacidades de origen del puerto asociado. Si se produce un desbordamiento de uno a uno, es posible que se envíe un RDO incorrecto y que se produzca una transferencia de energía inesperada, como sobretensión o sobrecorriente (de lo esperado). "nr_src_pdo" se utiliza para establecer el nivel de Rp cuando el puerto está en la función de origen. También es el tamaño de la matriz de las capacidades de la Fuente local al llenar el búfer que se enviará como los PDO de la Fuente (como en la Negociación de Energía). Si se produce el desbordamiento de uno por uno, es posible que se establezca un nivel de Rp incorrecto y se enviarán PDO de origen incorrectos al puerto asociado. Esto podría causar sobrecorriente o restablecimientos de puertos.

*Credits: N/A
CVSS Scores
Attack Vector
-
Attack Complexity
-
Privileges Required
-
User Interaction
-
Scope
-
Confidentiality
-
Integrity
-
Availability
-
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-02-19 CVE Reserved
  • 2024-05-01 CVE Published
  • 2024-05-13 EPSS Updated
  • 2024-08-02 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 6.8 < 6.8.8
Search vendor "Linux" for product "Linux Kernel" and version " >= 6.8 < 6.8.8"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 6.8 < 6.9
Search vendor "Linux" for product "Linux Kernel" and version " >= 6.8 < 6.9"
en
Affected