Threadx Usbx
Уязвимости
15
Эксплуатируемые
0
Макс. CVSS
9.8
Макс. EPSS
0.02162
Распределение по критичности
Критический
9
Высокий
1
Средний
0
Низкий
5
Затронутые диапазоны версий
< 6.1.10< 6.1.11< 6.1.12< 6.3.0< 6.4.3.202503≤ 6.4.2
Также сопоставлено как (исходные строки): threadx_usbx
Топ уязвимостей
CVE-2023-48698Azure RTOS USBX - это встроенный стек USB host, device и on-the-go (OTG), который полностью интегрирован с Azure RTOS ThreadX. Злоумышленник может вызвать удаленное выполнение кода из-за просроченных уязвимостей разыменования указателя в Azure RTOS USBX. Уязвимые компоненты включают функции/процессы в host stack и host classes, связанные с классами, связанными с устройством, GSER и HID в RTOS v6.2.1 и ниже. Исправления были включены в выпуск USBX 6.3.0. Пользователям рекомендуется обновиться. Известных обходных путей для этой уязвимости нет.
CVE-2023-48697Azure RTOS USBX - это встроенный стек USB host, device и on-the-go (OTG), который полностью интегрирован с Azure RTOS ThreadX. Злоумышленник может вызвать удаленное выполнение кода из-за уязвимостей буфера памяти и указателя в Azure RTOS USBX. Уязвимые компоненты включают функции/процессы в pictbridge и host class, связанные с PIMA, storage, CDC ACM, ECM, audio, hub в RTOS v6.2.1 и ниже. Исправления были включены в выпуск USBX 6.3.0. Пользователям рекомендуется обновиться. Известных обходных путей для этой уязвимости нет.
CVE-2023-48696Azure RTOS USBX - это встроенный стек USB host, device и on-the-go (OTG), который полностью интегрирован с Azure RTOS ThreadX. Злоумышленник может вызвать удаленное выполнение кода из-за просроченных уязвимостей разыменования указателя в Azure RTOS USBX. Уязвимые компоненты включают компоненты в host class, связанные с CDC ACM в RTOS v6.2.1 и ниже. Исправления были включены в выпуск USBX 6.3.0. Пользователям рекомендуется обновиться. Известных обходных путей для этой уязвимости нет.
CVE-2023-48695Azure RTOS USBX - это встроенный стек USB host, device и on-the-go (OTG), который полностью интегрирован с Azure RTOS ThreadX. Злоумышленник может вызвать удаленное выполнение кода из-за уязвимостей записи за пределами выделенной памяти в Azure RTOS USBX. Уязвимые компоненты включают функции/процессы в host и device classes, связанные с CDC ECM и RNDIS в RTOS v6.2.1 и ниже. Исправления были включены в выпуск USBX 6.3.0. Пользователям рекомендуется обновиться. Известных обходных путей для этой уязвимости нет.
CVE-2023-48694Azure RTOS USBX - это встроенный стек USB host, device и on-the-go (OTG), который полностью интегрирован с Azure RTOS ThreadX. Злоумышленник может вызвать удаленное выполнение кода из-за просроченного разыменования указателя и уязвимостей путаницы типов в Azure RTOS USBX. Уязвимые компоненты включают функции/процессы в host stack и host class, связанные с классами, связанными с устройством, ASIX, Prolific, SWAR, audio, CDC ECM в RTOS v6.2.1 и ниже. Исправления были включены в выпуск USBX 6.3.0. Пользователям рекомендуется обновиться. Известных обходных путей для этой уязвимости нет.
CVE-2022-39293Azure RTOS USBX — это высокопроизводительный USB-хост, устройство и встроенный стек On-The-Go (OTG), который полностью интегрирован с Azure RTOS ThreadX. Дело в том, что в [_ux_host_class_pima_read](https://github.com/azure-rtos/usbx/blob/master/common/usbx_host_classes/src/ux_host_class_pima_read.c) есть длина данных из ответа устройства, возвращаемая в самом первом пакете и считываемая [кодом L165](https://github.com/azure-rtos/usbx/blob/082fd9db09a3669eca3358f10b8837a5c1635c0b/common/usbx_host_classes/src/ux_host_class_pima_read.c#L165) в качестве header_length. Затем в [коде L178](https://github.com/azure-rtos/usbx/blob/082fd9db09a3669eca3358f10b8837a5c1635c0b/common/usbx_host_classes/src/ux_host_class_pima_read.c#L178) есть ветвь "if", которая проверяет выражение "(header_length - UX_HOST_CLASS_PIMA_DATA_HEADER_SIZE) > data_length", где, если header_length меньше, чем UX_HOST_CLASS_PIMA_DATA_HEADER_SIZE, вычисление может переполниться, а затем [код L182](https://github.com/azure-rtos/usbx/blob/082fd9db09a3669eca3358f10b8837a5c1635c0b/common/usbx_host_classes/src/ux_host_class_pima_read.c#L182) вычисление data_length также переполняется, таким образом, более поздний [цикл while начинается с L192](https://github.com/azure-rtos/usbx/blob/082fd9db09a3669eca3358f10b8837a5c1635c0b/common/usbx_host_classes/src/ux_host_class_pima_read.c#L192) может переместить data_pointer на неожиданный адрес и вызвать переполнение буфера записи. Исправление было включено в выпуск USBX [6.1.12](https://github.com/azure-rtos/usbx/releases/tag/v6.1.12_rel). Следующее можно использовать в качестве обходного пути: Добавьте проверку `header_length`: 1. Она должна быть больше, чем `UX_HOST_CLASS_PIMA_DATA_HEADER_SIZE`. 1. Она должна быть больше или равна текущей возвращаемой длине данных (`transfer_request -> ux_transfer_request_actual_length`).
CVE-2022-36063Azure RTOS USBx — это встроенный стек USB-хоста, устройства и OTG (On-The-Go), полностью интегрированный с Azure RTOS ThreadX и доступный для всех процессоров, поддерживаемых Azure RTOS ThreadX. Реализация Azure RTOS USBX поддержки хостом USB CDC ECM включает в себя целочисленное переполнение и переполнение буфера в функции `_ux_host_class_cdc_ecm_mac_address_get`, которые потенциально могут быть использованы для достижения удаленного выполнения кода или отказа в обслуживании. Установка длины строкового дескриптора MAC-адреса в `0` или `1` позволяет злоумышленнику вызвать целочисленное переполнение, за которым (string_length) следует переполнение буфера массива `cdc_ecm -> ux_host_class_cdc_ecm_node_id`. Это может позволить перенаправить поток выполнения кода или вызвать отказ в обслуживании. Исправление было включено в выпуск USBX [6.1.12](https://github.com/azure-rtos/usbx/releases/tag/v6.1.12_rel). Улучшенная проверка длины строкового дескриптора MAC-адреса для проверки на наличие неожиданно малых значений может использоваться в качестве обходного пути.
CVE-2022-29246Azure RTOS USBX — это встроенный стек USB-хоста, устройства и on-the-go (OTG). До версии 6.1.11 функциональность USBX DFU UPLOAD может использоваться для внедрения переполнения буфера, приводящего к перезаписи содержимого памяти. В отдельных случаях это может позволить злоумышленнику обойти функции безопасности или выполнить произвольный код. Реализация функции `ux_device_class_dfu_control_request` не гарантирует, что переполнение буфера не произойдет во время обработки команды DFU UPLOAD. Когда злоумышленник выдает запрос на передачу управления `UX_SLAVE_CLASS_DFU_COMMAND_UPLOAD` с `wLenght`, превышающим размер буфера (`UX_SLAVE_REQUEST_CONTROL_MAX_LENGTH`, 256 байт), в зависимости от фактической реализации `dfu -> ux_slave_class_dfu_read`, может произойти переполнение буфера. Например, `ux_slave_class_dfu_read` может считать 4096 байт (или больше до 65k) в 256-байтовый буфер, что в конечном итоге приведет к переполнению. Кроме того, в случае, если злоумышленник имеет некоторый контроль над памятью read flash, это может привести к выполнению произвольного кода и компрометации платформы. Исправление этой проблемы было включено в выпуск USBX 6.1.11. В качестве обходного пути выровняйте размер запроса и буфера, чтобы гарантировать соблюдение границ буфера.
CVE-2022-29223Azure RTOS USBX — это встроенный стек USB-хоста, устройства и on-the-go (OTG). В версиях, предшествующих 6.1.10, злоумышленник может вызвать переполнение буфера, предоставив стеку хоста Azure RTOS USBX дескриптор HUB со значением `bNbPorts`, превышающим `UX_MAX_TT`, которое по умолчанию равно 8. Для значения `bNbPorts`, равного 255, реализация функции `ux_host_class_hub_descriptor_get` изменит содержимое массива `hub` -> `ux_host_class_hub_device` -> `ux_device_hub_tt`, нарушив конечную границу на 255 - `UX_MAX_TT` элементов. Стеку хоста USB необходимо проверить количество портов, сообщаемое концентратором, и если значение больше, чем UX_MAX_TT, стек USB должен отклонить запрос. Это исправление было включено в выпуск USBX 6.1.10.
CVE-2025-55095Функция _ux_host_class_storage_media_mount() отвечает за монтаж разделов на устройстве хранения USB. Когда он сталкивается с расширенной записью раздела в таблице раздела, он рекурсивно призывает смонтировать следующий логический раздел.
Эта рекурсия происходит в _ux_host_class_storage_partition_read(), который анализирует до четырех записей раздела. Если найден расширенный раздел (с типом UX_HOST_CLASS_STORAGE_PARTITION_EXTED или EXTNDED_LBA_MAPPED), код вызывает:
_ux_host_class_storage_media_mount(storage, сектор + _ux_utility_long_get(...));
Нет никаких ограничений на глубину рекуперации или отслеживание посещаемых секторов. В результате вредоносное или деформированное изображение диска может включать циклические или чрезмерно глубокие цепи расширенных разделов, заставляя функцию повторяться до тех пор, пока не произойдет переполнение стека.
CVE-2025-55100В USBX (Eclipse ThreadX) версии ≤ 6.4.2 обнаружена уязвимость чтения за пределами буфера в функции _ux_host_class_audio10_sam_parse_func(), отвечающей за разбор списка частот аудио‑устройства. При большом значении packed_audio_descriptor[7] без соответствующей проверки размер буфера может быть превышен, что приводит к потенциальному краху или утечке информации. Уязвимость исправлена в версии 6.4.3.
Источники:
- [1] https://github.com/eclipse-threadx/usbx/security/advisories/GHSA-j253-w29r-9m48
CVE-2025-55099В реализации USB‑поддержки Eclipse ThreadX (USBX) версии ≤ 6.4.2 обнаружена уязвимость чтения за пределами буфера (Out‑of‑bounds read) в функции _ux_host_class_audio_alternate_setting_locate(). При разборе дескриптора USB‑аудио, если поле bSamFreqType указывает тип диапазона или список частот, функция без проверки длины буфера читает дополнительные 6 или 3 × N байтов. Сокращённый или специально сформированный дескриптор может привести к краху или утечке памяти [1].
Источники:
- [1] https://github.com/eclipse-threadx/usbx/security/advisories/GHSA-93mv-fcpr-9488
CVE-2025-55097В модуле USB‑поддержки Eclipse ThreadX (USBX) версии ≤ 6.4.2 обнаружена уязвимость Out‑of‑bounds read в функции _ux_host_class_audio_streaming_sampling_get(). При разборе дескриптора USB‑аудио‑стриминга, если поле bSamFreqType указывает количество частот, функция без проверки длины буфера читает 3 × bSamFreqType байтов, что может привести к чтению за пределами буфера и возможному краху или раскрытию памяти [1].
Источники:
- [1] https://github.com/eclipse-threadx/usbx/security/advisories/GHSA-r6h5-fmhc-v3j7
CVE-2025-55096В USBX (Eclipse ThreadX) версии ≤ 6.4.2 обнаружена уязвимость переполнения буфера при разборе дескриптора HID‑устройства в функции _ux_host_class_hid_report_descriptor_get(). При недостаточной проверке длины буфера возможно чтение за пределами памяти, что может привести к краху системы или утечке данных. Уязвимость исправлена в версии 6.4.3.
Источники:
- [1] https://github.com/eclipse-threadx/usbx/security/advisories/GHSA-8m9v-jvjp-gmxq
CVE-2025-55098В USBX версии ≤ 6.4.2 (модуль поддержки USB для Eclipse ThreadX) функция _ux_host_class_audio_device_type_get() при разборе дескриптора USB‑аудио‑устройства может выполнить чтение за пределами буфера. Цикл «for (i = 0; i < descriptor[7]; i++)» использует значение descriptor[7] без проверки, что общий размер дескриптора достаточно велик для доступа к байтам descriptor[8+i]. При специально сформированном дескрипторе с завышенным значением descriptor[7] и недостаточным реальным размером происходит out‑of‑bounds‑read, что может привести к падению хоста или утечке памяти. Уязвимость классифицируется как CWE‑125 «Out‑of‑bounds Read», имеет низкую степень серьёзности (CVSS 1.0) и описана в безопасности GitHub Security Advisory. Подробнее см. источник [1].
Источники:
- [1] https://github.com/eclipse-threadx/usbx/security/advisories/GHSA-4jc2-x5hv-46fq