CVE-2024-26995
usb: typec: tcpm: Correct the PDO counting in pd_set
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
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.
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.
CVSS Scores
SSVC
- Decision:Track
Timeline
- 2024-02-19 CVE Reserved
- 2024-05-01 CVE Published
- 2024-05-13 EPSS Updated
- 2024-12-19 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
CAPEC
References (3)
URL | Tag | Source |
---|---|---|
https://git.kernel.org/stable/c/cd099cde4ed264403b434d8344994f97ac2a4349 | Vuln. Introduced |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://git.kernel.org/stable/c/f3da3192cdd3fefe213390e976eec424a8e270b5 | 2024-04-27 | |
https://git.kernel.org/stable/c/c4128304c2169b4664ed6fb6200f228cead2ab70 | 2024-04-04 |
URL | Date | SRC |
---|
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
|