CVE-2024-26995

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

published May 1, 2024

CVSS
—
EPSS
0%
Percentile
14.0
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00238 · 14.0th percentile
Published
2024-05-01T05:28Z
EPSS history
Timeline
  • 01 MAY 05:28Z
    usb: typec: tcpm: Correct the PDO counting in pd_set
    cvelistv5