Функция _ux_host_class_storage_media_mount() отвечает за монтаж разделов на устройстве хранения USB. Когда он сталкивается с расширенной за…
Функция _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(...)); Нет никаких ограничений на глубину рекуперации или отслеживание посещаемых секторов. В результате вредоносное или деформированное изображение диска может включать циклические или чрезмерно глубокие цепи расширенных разделов, заставляя функцию повторяться до тех пор, пока не произойдет переполнение стека.
Переполнение стекового буфера — это условие, при котором перезаписываемый буфер размещён в стеке (то есть является локальной переменной или, редко, параметром функции).
https://cwe.mitre.org/data/definitions/121.html →Открыть в коллекции CWE →