Функция _ux_host_class_storage_media_mount() отвечает за монтирование разделов на USB-накопителе большой емкости. Когда он встречает запись расширенного раздела в таблице разделов, он рекурсивно вызывает себя для монтирования следующего логического раздела. Эта рекурсия происходит в _ux_host_class_storage_partition_read(), который анализирует до четырех записей раздела.
Если обнаружен расширенный раздел (типа UX_HOST_CLASS_STORAGE_PARTITION_EXTENDED или EXTENDED_LBA_MAPPED), код вызывает:
_ux_host_class_storage_media_mount(хранилище, сектор + _ux_utility_long_get(...));
Нет ограничений на глубину рекурсии или отслеживание посещенных секторов. В результате вредоносный или искаженный образ диска может включать циклические или чрезмерно глубокие цепочки расширенных разделов, что приводит к рекурсивному выполнению функции до тех пор, пока не произойдет переполнение стека.
Показать оригинальное описание (EN)
The function _ux_host_class_storage_media_mount() is responsible for mounting partitions on a USB mass storage device. When it encounters an extended partition entry in the partition table, it recursively calls itself to mount the next logical partition. This recursion occurs in _ux_host_class_storage_partition_read(), which parses up to four partition entries. If an extended partition is found (with type UX_HOST_CLASS_STORAGE_PARTITION_EXTENDED or EXTENDED_LBA_MAPPED), the code invokes: _ux_host_class_storage_media_mount(storage, sector + _ux_utility_long_get(...)); There is no limit on the recursion depth or tracking of visited sectors. As a result, a malicious or malformed disk image can include cyclic or excessively deep chains of extended partitions, causing the function to recurse until stack overflow occurs.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Eclipse Threadx_Usbx
cpe:2.3:a:eclipse:threadx_usbx:*:*:*:*:*:*:*:*
|
— |
<= 6.4.2
|