Executive brief
A vulnerability in the Linux kernel's USB Type-C implementation could allow a faulty or malicious hardware component to cause a system crash or execute unintended operations. This occurs when the system receives a notification from a USB controller but fails to verify if the connector ID provided is valid before using it. This issue primarily affects systems using specific USB-C hardware controllers or firmware.
Technical details
An out-of-bounds array index vulnerability exists in the ucsi_connector_change() function within drivers/usb/typec/ucsi/ucsi.c. The connector number provided in a UCSI CCI notification is a 7-bit field supplied by the Platform Policy Manager (PPM). The driver uses this value to index the ucsi->connector[] array without verifying it against the maximum number of connectors reported during initialization. A malicious or buggy PPM (such as EC firmware or an I2C-attached UCSI controller) can provide an invalid index, causing the kernel to call schedule_work() on memory past the end of the array. This has been patched by adding bounds checking to reject connector numbers that are zero or exceed the reported capacity.
Affected products
- Linux Linux Kernel 6.1.176, 6.6.143, 6.12.93, 6.18.35, 7.0.12
Timeline
- 2026-05-13: patched: Initial patch authored by Greg Kroah-Hartman
- 2026-07-19: disclosed: CVE published to the NVD dataset
References
- https://git.kernel.org/stable/c/0edd1e21587b0483c7ceb993b9fb9668bbef7433
- https://git.kernel.org/stable/c/156b6f0aec6108909b0c4aedc78865b12766b347
- https://git.kernel.org/stable/c/288a81a8507052bcfbf884d39a463c44c42c5fd9
- https://git.kernel.org/stable/c/5af2719b460ab904c504fc069d1dd2a3aa2b22b0
- https://git.kernel.org/stable/c/bd24d92af4ae021b6209f28e9a57e1bf2260d4fd
- https://git.kernel.org/stable/c/cea949203faef9cb783adc7b978cce056271e057