CVE-2024-26995: usb: typec: tcpm: Correct the PDO counting in pd_set
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.
Security readout for executives and security teams
Plain-English summary
This Linux kernel flaw affects USB Type-C Power Delivery negotiation. A counting mistake can make the kernel describe or choose the wrong power data, potentially causing unexpected power transfer such as higher voltage/current than intended or port resets. The sources do not report active exploitation or a CVSS score.
Executive priority
Treat this as a targeted kernel maintenance issue, not an internet-scale emergency. Prioritize laptops, embedded systems, docks, and devices relying on USB-C Power Delivery. Move through normal kernel patch cycles unless vendor guidance or fleet exposure indicates higher urgency.
Technical view
In the TCPM USB Type-C code, pd_set incorrectly increments nr_snk_pdo and nr_src_pdo after loops. Those values size local sink/source PDO arrays and influence RDO selection, Rp level, and advertised source PDOs. The resolved issue is an off-by-one overflow in PDO counting during power negotiation.
Likely exposure
Exposure is most relevant to Linux systems using affected kernel builds with USB Type-C Power Delivery/TCPM support. The bundle lists Linux kernel 6.8-related versions and references stable kernel fixes and Fedora advisories. Systems without affected USB-C PD paths are less likely to be exposed.
Exploitation context
No active exploitation is cited, and the CVE is not listed as CISA KEV in the provided bundle. The described impact is tied to USB Type-C power negotiation behavior, suggesting exploitation would depend on hardware, kernel version, driver path, and partner port interaction.
Researcher notes
The key evidence is the kernel description: off-by-one PDO counts can corrupt power negotiation decisions, including RDO, Rp level, and advertised PDOs. Sources do not provide exploit details, CVSS, CWE mapping, or confirmed affected hardware models, so validation should remain evidence-based and distribution-specific.
Mitigation direction
Check vendor kernel advisories for CVE-2024-26995 applicability.
Update to a kernel build containing the referenced stable fixes.
Apply Fedora kernel updates where Fedora advisories match deployed systems.
Prioritize devices using USB-C Power Delivery or TCPM paths.
Avoid inventing local workarounds; follow Linux distribution guidance.
Validation and detection
Inventory Linux kernel versions on USB-C capable systems.
Confirm whether TCPM or USB Type-C Power Delivery is enabled.
Map installed kernels against vendor advisories for CVE-2024-26995.
Verify patched kernels include the referenced stable commits.
Review change records for kernel updates after May 2024.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-26995 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.