Нов анализ на сигурността от Binarly Research разкри шест критични уязвимости в широко използвания начален зареждач (bootloader) U-Boot, излагайки вградените системи и платформите за управление на сървъри на атаки за отказ на услуга (DoS) и потенциално изпълнение на произволен код.

U-Boot е основополагащ компонент в зареждащата верига на безброй устройства, включително рутери, IoT системи и контролери за управление на дънната платка (BMC), използвани в корпоративни сървъри. Като една от първите части от код, които се изпълняват при стартиране на системата, всяка слабост в U-Boot може да компрометира цялата верига на доверие.

Фокусирайки се върху механизма за проверка на подписи на U-Boot Verified Boot, по-специално проверката на FIT (Flattened Image Tree) подписи, изследователите от Binarly идентифицираха дефекти в начина, по който се обработват недоверени зареждащи изображения, преди валидирането да е завършило. Тези проблеми засягат кодови пътища, присъстващи от версия v2013.07 насам, което потенциално засяга над 50 стабилни версии и множество версии на производители.

Уязвимостите (от BRLY-2026-037 до BRLY-2026-042) попадат в две категории: две позволяват потенциално изпълнение на код, докато четири водят до DoS състояния:

  • BRLY-2026-037: Разименуване на нулев указател в fdt_find_regions може да срине системата. В определени среди, където паметта на адрес 0x0 е картирана, този дефект може да ескалира в препълване на буфера в стека, позволявайки изпълнение на код.
  • BRLY-2026-038: Свързан проблем позволява недостиг на буфера в стека (stack buffer underflow) поради неправилно боравене с отрицателни стойности за дължина. Нападателите могат да манипулират указателите на паметта, за да презапишат адресите за връщане и да изпълнят произволен код по време на зареждане.
  • BRLY-2026-039: Непроверено поле за размер в свойството hashed-strings позволява на нападателите да предизвикат прекомерно четене на памет при хеширане, което води до срив.
  • BRLY-2026-040: Друго разименуване на нулев указател възниква при обработка на свойства в наследени FIT формати, причинявайки незабавен срив при парсване на изображението.
  • BRLY-2026-041: Неправилно валидиране на външни референции към данни (data-offset, data-position, data-size) позволява на нападателите да сочат извън валидната памет или да изискват четене с прекомерен размер, което води до сривове на системата.
  • BRLY-2026-042: Неограничена рекурсивна функция, използвана при валидиране на FIT, може да изчерпи паметта на стека при обработка на дълбоко вложени структури на изображения, което води до DoS.

Всичките шест уязвимости се задействат по време на обработката на зловредно FIT изображение, преди да завърши проверката на подписа. Това е важно, тъй като нападателите могат да създават изображения, които заобикалят изцяло проверките за доверие. Въпреки че често се приема, че такива атаки изискват физически достъп, Binarly подчертава реални сценарии, при които отдалечени нападатели могат да експлоатират механизми за актуализиране на фърмуера. Например, незащитени BMC интерфейси могат да позволят на противниците да качват и записват зловредни изображения, получавайки контрол в най-ранния етап на изпълнение.

Въздействието варира от превръщането на устройствата в неизползваеми (неспособни да заредят) до внедряването на скрити фърмуерни импланти, които се задържат под нивото на операционната система и избягват традиционните инструменти за сигурност.

Binarly координира разкриването с разработчиците на U-Boot и предостави корекции за всички шест проблема, които вече са внедрени в основното хранилище на U-Boot. Ключовите мерки за смекчаване включват добавяне на проверки за нулев указател, валидиране на върнатите стойности, ограничаване на размера и отместването, ограничаване на дълбочината на рекурсия и осигуряване, че всички региони на паметта попадат в рамките на валидните граници на изображението.

Организациите, използващи U-Boot, особено във вградени среди и среди за управление на сървъри, се съветват спешно да актуализират до пачнати версии или да внедрят корекциите незабавно.