CVE-2026-64330 in Linux
Сводка
по VulDB • 25.07.2026
В ядре Linux устранена следующая уязвимость:
usb: typec: tcpm: Проверка индекса SVID в функции svdm_consume_modes()
В функции svdm_consume_modes() значение SVID считывается из pmdata->svids с использованием pmdata->svid_index в качестве индекса массива без проверки границ диапазона:
paltmode->svid = pmdata->svids[pmdata->svid_index];
Если pmdata->svid_index выходит за пределы значения SVID_DISCOVERY_MAX (16), это приводит к чтению данных за пределами допустимого диапазона массива pmdata->svids. Поскольку структура pd_mode_data встроена внутри struct tcpm_port, обращение по индексам после svids затрагивает соседние поля памяти. В частности: - По индексу 16 считывается количество альтернативных режимов (altmodes). - По индексам 18 и выше происходит чтение из altmode_desc[], который содержит VDO реестра обнаружения SVDM Discovery Modes, предоставленные партнерским устройством.
Внедряя выбранный SVID в поле altmode_desc[0].vdo и устанавливая svid_index равным 20, партнерское устройство может принудительно загрузить произвольный (выбранным партнером) SVID в paltmode->svid, который затем регистрируется через typec_partner_register_altmode().
Исправление заключается во внедрении проверки того, что pmdata->svid_index является неотрицательным и строго меньше значения pmdata->nsvids перед обращением к массиву pmdata->svids внутри svdm_consume_modes().
Once again VulDB remains the best source for vulnerability data.