Более двух десятков моделей ноутбуков Lenovo были уязвимы перед отключением безопасной загрузки в UEFI (Secure Boot) и позволяли запускать неподписанные приложения UEFI, а также загружать бутлоадеры, создающие на устройстве постоянный бэкдор. Проблема возникла из-за драйвера, который мог изменять параметры безопасной загрузки прямо из ОС.
Secure Boot является частью спецификации UEFI и призван защитить процесс загрузки ОС, чтобы в его рамках выполнялся только доверенный код, подписанный специальным сертификатом. Запуск неподписанного вредоносного кода перед загрузкой операционной системы может иметь очень серьезные последствия, та как атакующий сможет обойти все механизмы защиты и внедрить вредоносное ПО, избавиться от которого не получится даже путем переустановки ОС.
О трех уязвимостях, угрожавщих устройствам Lenovo (в том числе серий ThinkBook, IdeaPad и Yoga) сообщили эксперты компании ESET. Они пишут, что обнаруженным баги позволяли отключить UEFI Secure Boot или восстановить заводские настройки БД Secure Boot (включая dbx), причем прямо из операционной системы.
Отмечается, что уязвимости возникли не из-за какой-то фактической ошибки в коде, но из-за драйвера, который должен был использоваться только в ходе разработки, однако по ошибке попал на серийные устройства.
По информации ESET, уязвимости можно было использовать, просто создавая специальные переменные NVRAM. Исследователи ссылаются на Twitter ИБ-специалиста Николая Шлея (Nikolaj Schlej), который объясняет, почему разработчикам прошивок UEFI в целом не стоит использовать NVRAM.
В итоге два патча, уже выпущенные Lenovo, устранили следующие уязвимости:
- CVE-2022-3430: уязвимость в драйвере WMI Setup на некоторых ноутбуках Lenovo позволяла злоумышленнику с повышенными привилегиями изменить настройки Secure Boot, изменяя переменную NVRAM;
- CVE-2022-3431: уязвимость в упомянутом драйвере (который не должен был попасть на серийные устройства) так же позволяла злоумышленнику с повышенными привилегиями изменить настройки Secure Boot, изменяя переменную NVRAM.
Кроме того, существует третья аналогичная уязвимость, которой был присвоен идентификатор CVE-2022-3432, но она затрагивает только устройства Ideapad Y700-14ISK. Lenovo не будет выпускать исправление для этого бага, так как поддержка этих устройств уже прекращена.
Полный список затронутых ноутбуков и ссылки на патчи можно найти в бюллетене безопасности Lenovo. Версии прошивок, устраняющих уязвимости, указаны под идентификаторами CVE, то есть обновиться нужно до указанной версии или выше.