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

usb: typec: tcpm: Validate SVID index in svdm_consume_modes()

In svdm_consume_modes(), the SVID value is read from pmdata->svids using
pmdata->svid_index as an array index without bounds validation:

paltmode->svid = pmdata->svids[pmdata->svid_index];

If pmdata->svid_index is driven beyond SVID_DISCOVERY_MAX (16), it results
in an out-of-bounds read of the pmdata->svids array. Because pd_mode_data
is embedded inside struct tcpm_port, indexing past svids reads into
adjacent fields. In particular:
- At index 16, it reads the altmodes count.
- At index 18 and beyond, it reads into altmode_desc[], which contains
partner-supplied SVDM Discovery Modes VDOs.

By injecting a chosen SVID into altmode_desc[0].vdo and driving svid_index
to 20, the partner can force paltmode->svid to be loaded with an arbitrary,
partner- chosen SVID, which is then registered via
typec_partner_register_altmode().

Fix this by validating that pmdata->svid_index is non-negative and strictly
less than pmdata->nsvids before accessing the pmdata->svids array inside
svdm_consume_modes().
Published: 2026-07-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw lies in the Linux kernel’s USB Type‑C transport controller code. In svdm_consume_modes(), the kernel extracts an SVID from an array using pmdata->svid_index without ensuring the index is within bounds. When an attacker sends a SVDM message that sets svid_index beyond the declared maximum of 16, the kernel performs an out‑of‑bounds read of the pmdata->svids array, exposing arbitrary memory and delivering the value to typec_partner_register_altmode(). This permits the attacker to register a custom SVID as an alternate mode, potentially enabling untrusted mode configuration and leaking data.

Affected Systems

Affected systems are all Linux kernel users that contain the tcpm implementation before the fix. The vulnerability applies to the Linux kernel product; no specific version list is provided, so every kernel that has not yet incorporated the bounds‑check is vulnerable.

Risk and Exploitability

The CVSS score of 5.5 indicates moderate severity. The risk is low to moderate. The EPSS score is reported as < 1 %, and the vulnerability is not listed in CISA’s KEV catalog. Exploitation requires a crafted USB Type‑C message from a partner device, meaning the attacker must have physical or proximate access. While the vulnerability allows unauthorized alternate‑mode registration, it does not immediately grant code execution. Updating the kernel to a version that includes the fix is the recommended mitigation.

Generated by OpenCVE AI on August 4, 2026 at 14:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to the latest revision that contains the bounds‑check commit for svdm_consume_modes().
  • If a kernel upgrade cannot be applied immediately, reconfigure the USB subsystem to disable alternate‑mode support (for example, by disabling the CONFIG_USB_TYPEC option or unbinding the relevant controller via sysfs).
  • Limit physical USB access to trusted devices only and monitor the system for anomalous SVDM messages that could indicate an attempt to inject an invalid SVID.

Generated by OpenCVE AI on August 4, 2026 at 14:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4717-1 linux security update
Debian DLA Debian DLA DLA-4720-1 linux security update
Debian DLA Debian DLA DLA-4723-1 linux-6.1 security update
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
History

Sun, 02 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-788

Thu, 30 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Mon, 27 Jul 2026 06:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-788

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: usb: typec: tcpm: Validate SVID index in svdm_consume_modes() In svdm_consume_modes(), the SVID value is read from pmdata->svids using pmdata->svid_index as an array index without bounds validation: paltmode->svid = pmdata->svids[pmdata->svid_index]; If pmdata->svid_index is driven beyond SVID_DISCOVERY_MAX (16), it results in an out-of-bounds read of the pmdata->svids array. Because pd_mode_data is embedded inside struct tcpm_port, indexing past svids reads into adjacent fields. In particular: - At index 16, it reads the altmodes count. - At index 18 and beyond, it reads into altmode_desc[], which contains partner-supplied SVDM Discovery Modes VDOs. By injecting a chosen SVID into altmode_desc[0].vdo and driving svid_index to 20, the partner can force paltmode->svid to be loaded with an arbitrary, partner- chosen SVID, which is then registered via typec_partner_register_altmode(). Fix this by validating that pmdata->svid_index is non-negative and strictly less than pmdata->nsvids before accessing the pmdata->svids array inside svdm_consume_modes().
Title usb: typec: tcpm: Validate SVID index in svdm_consume_modes()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-25T08:49:57.734Z

Reserved: 2026-07-19T15:36:31.781Z

Link: CVE-2026-64330

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-07-25T10:17:14.673

Modified: 2026-08-11T15:00:57.447

Link: CVE-2026-64330

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64330 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T14:45:03Z

Weaknesses