Новости Вредоносный код захватывает устройство раньше, чем запустится Linux. Шесть дыр в загрузчике U-Boot делают антивирус бесполезным свидетелем

NewsMaker

I'm just a script
Премиум
28,246
46
8 Ноя 2022
Специально подготовленный образ способен повредить память и выполнить код до проверки цифровой подписи.

<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:800/450;margin-bottom:2rem;overflow:hidden">
9zgmny2dcr8sqec1dtrs0vazz44dqnd4.jpg

Вредоносная прошивка может захватить устройство ещё до запуска Linux и остаться почти невидимой для защитных программ. Исследователи Binarly обнаружили шесть уязвимостей в загрузчике U-Boot, который используют маршрутизаторы, серверное оборудование, промышленные системы и множество устройств интернета вещей.

U-Boot запускается одним из первых после включения устройства, подготавливает оборудование и передаёт управление операционной системе. Ошибка на таком уровне позволяет атакующему вмешаться в загрузку раньше антивируса, средств наблюдения и других защитных механизмов.

Проблемы нашли в коде проверки цифровых подписей образов FIT, или Flattened Image Tree. U-Boot использует формат FIT для упаковки ядра Linux, конфигурации и других компонентов прошивки. Механизм Verified Boot должен проверить подпись и отклонить изменённый образ, однако уязвимый код начинает разбирать содержимое файла до завершения проверки его подлинности. Специально подготовленный образ поэтому способен вызвать сбой или повредить память ещё до того, как загрузчик признает подпись недействительной.

Две уязвимости позволяют при определённых условиях выполнить произвольный код в контексте загрузчика. Ещё четыре приводят к отказу в обслуживании и могут сделать устройство незагружаемым. Ошибки связаны с повреждением стека, чтением данных за пределами допустимой области памяти, разыменованием нулевого указателя, недостаточной проверкой смещений и неограниченной рекурсией.

Наиболее опасная уязвимость BRLY-2026-038 получила оценку 6,8 балла из 10 по шкале CVSS. Ошибка вызывает выход за нижнюю границу буфера стека при проверке подписи. Исследователи считают, что атакующий может перезаписать служебные данные и добиться выполнения кода до запуска операционной системы. Уязвимость BRLY-2026-037 обычно завершает работу загрузчика, но при подходящей конфигурации памяти также может привести к выполнению кода.

Успешная атака даёт злоумышленнику контроль на раннем этапе загрузки. Вредоносный код сможет изменить порядок запуска компонентов, отключить отдельные проверки безопасности или установить имплант в прошивку. Обычные средства защиты внутри операционной системы с трудом обнаруживают подобные угрозы, поскольку получают управление позже.

Для эксплуатации требуется передать устройству подготовленный образ прошивки. Во многих сценариях атакующему понадобится физический доступ или уже полученный контроль над системой обновления. Однако локальное присутствие требуется не всегда. Контроллеры управления сервером BMC и некоторые сетевые устройства поддерживают удалённое обновление прошивки. После взлома административного интерфейса злоумышленник сможет загрузить вредоносный образ через сеть.

Большая часть уязвимого кода появилась ещё в U-Boot 2013.07. По оценке Binarly , проблемы могут затрагивать свыше 50 стабильных выпусков, а также многочисленные версии, которые производители оборудования изменили и включили в собственные прошивки. Точный список устройств пока отсутствует из-за огромного числа независимых сборок U-Boot.

Исследователи сообщили об ошибках разработчикам U-Boot в мае 2026 года. Исправления уже добавили в основной код проекта, однако пользователям недостаточно обновить загрузчик самостоятельно. Производители маршрутизаторов, серверов и встраиваемых устройств должны включить патчи в свои прошивки и выпустить обновления. Старые модели без поддержки могут остаться уязвимыми навсегда.
 
Источник новости
www.securitylab.ru

Похожие темы