Бесплатно Экспресс-аудит сайта:

07.06.2022

Критическая уязвимость U-Boot позволяет рутировать встраиваемые системы

Загрузчик с открытым исходным кодом U-Boot используется в различных типах встраиваемых систем, включая ChromeOS и Android. Он поддерживает множество архитектур, включая 68k, ARM, x86, MIPS, Nios, PPC и другие.

Согласно отчету NCC Group, алгоритм дефрагментации IP, реализованный в U-Boot, подвержен двум уязвимостям, которые могут быть использованы из локальной сети путем создания неправильных пакетов.

С помощью CVE-2022-30790 (оценка 9.6 по шкале CVSS) злоумышленник атакует алгоритм дефрагментации, перезаписывая пространственный дескриптор.

Использовав уязвимость, хакер подделывает метаданные и фрагмент данных так, чтобы они указывали на одно и то же место. Это приводит к перезаписи метаданных фрагментированными данными. После этого злоумышленник может записать произвольные данные, отправив второй фрагмент данных, смещение и длина которого должны соответствовать пространству, на которое указывают перезаписанные метаданные.

По словам специалистов, уязвимость может быть использована только из локальной сети, но при этом останется крайне эффективной для локального рутинга устройств на базе Linux.

Вторая уязвимость, отслеживаемая как CVE-2022-30552 (оценка 7.1 по шкале CVSS), позволяет хакеру с помощью неправильно сформированного пакета переполнить буфер, что может привести к отказу в обслуживании. Для использования уязвимости злоумышленнику достаточно создать пакет, который имеет значение меньше минимально допустимой длины. После этого функция попытается создать копию большего размера, чем способен вместить буфер.

NCC Group сообщила разработчикам U-Boot об уязвимостях 18 мая. Исправления находятся в процессе разработки, но подробности о CVE-2022-30790 и CVE-2022-30552 были опубликованы до появления патча, так как информация об уязвимостях в U-Boot раскрывается публично, с помощью рассылки.

Специалисты из NCC Group рекомендуют пользователям применить исправления U-Boot сразу же после их выхода.