Lenovo выпустила исправления прошивки UEFI, закрывающие три уязвимости, которые затрагивают более 70 моделей ноутбуков. Проблемы обнаружила словацкая компания ESET. По её данным, недостатки позволяют выполнять произвольный код на ранних стадиях загрузки, что может привести к перехвату управления операционной системой и отключению защитных механизмов.
Разберём, что такое UEFI-уязвимости, почему они опасны и что делать владельцам ноутбуков Lenovo.
Что такое UEFI и почему он важен
UEFI — это прошивка, которая запускается до операционной системы. Она инициализирует оборудование, проверяет подписи загрузчиков (Secure Boot) и передаёт управление ядру. Если злоумышленник контролирует UEFI, он может закрепиться ниже уровня ОС: антивирус его не увидит, а переустановка системы не поможет.
Именно поэтому уязвимости прошивки считаются серьёзными, даже если для эксплуатации нужен локальный доступ или физическое присутствие. В корпоративной среде ноутбук может быть украден, а в цепочке поставок — скомпрометирован на этапе сборки.
# посмотреть версию прошивки и модель
sudo dmidecode -t bios | grep -E "Vendor|Version|Release Date"
sudo dmidecode -t system | grep -E "Manufacturer|Product Name|Version"
Три уязвимости
ESET сообщила о трёх проблемах, связанных с типовой ошибкой UEFI, известной как «double GetVariable». Она возникает из-за некорректной обработки переменных, которые передаются между компонентами прошивки. В результате атакующий может обойти проверки и выполнить код.
Уязвимости получили идентификаторы CVE-2021-3970, CVE-2021-3971 и CVE-2021-3972. Часть из них связана с защитой SPI-флеша и возможностью отключить запись или проверку целостности. Точный набор зависит от модели.
ESET отметила, что проблемы можно найти в коде прошивки с помощью плагина efiXplorer для IDA. Это подчёркивает: анализ прошивок становится доступнее, и производителям стоит относиться к нему серьёзно.
# проверить, включён ли Secure Boot
mokutil --sb-state 2>/dev/null
# посмотреть события прошивки, если поддерживается
journalctl -k -b | grep -iE "efi|secure boot|firmware" | head -20
Кто в зоне риска
Уязвимости затрагивают более 70 моделей, включая линейку ThinkBook. Точный список опубликован Lenovo; проверьте свою модель по серийному номеру на сайте поддержки. Не ориентируйтесь на маркетинговое название: одна и та же линейка может иметь разные ревизии прошивки.
Если ноутбук используется в организации, добавьте проверку прошивок в инвентаризацию. Это не менее важно, чем версия ОС и антивируса.
# сохранить сведения о прошивке для инвентаризации
sudo dmidecode -t bios > bios-info.txt
sudo dmidecode -t system >> bios-info.txt
sudo fwupdmgr get-devices 2>/dev/null | head -40
Как обновиться
Lenovo выпустила обновления прошивки. Установить их можно через Lenovo Vantage в Windows, через загрузочный образ с сайта поддержки или через fwupd в Linux, если модель поддерживается.
# проверить доступные обновления прошивки в Linux
sudo apt install fwupd
fwupdmgr refresh
fwupdmgr get-updates
sudo fwupdmgr update
Перед обновлением подключите ноутбук к сети питания и сделайте резервную копию данных. Прерывание прошивки может превратить устройство в «кирпич». Не обновляйтесь при низком заряде батареи.
# проверить заряд и питание
upower -i $(upower -e | grep BAT) | grep -E "percentage|state"
Если fwupd не видит обновление, используйте официальный образ от Lenovo. В некоторых случаях требуется Windows или загрузочная флешка.
Что делать, если обновления нет
Не все модели получают прошивку одновременно. Если для вашей модели обновления нет, ограничьте физический доступ к устройству, включите Secure Boot, используйте пароль на BIOS и не оставляйте ноутбук без присмотра. Это не устраняет уязвимость, но снижает риск эксплуатации.
Для критичных сотрудников рассмотрите замену устройства или изоляцию: не храните на нём ключи и не используйте для доступа к чувствительным системам, пока прошивка не обновлена.
# проверить настройки безопасности, доступные из ОС
mokutil --sb-state 2>/dev/null
ls /sys/firmware/efi/efivars 2>/dev/null | head
Более широкая проблема
UEFI-уязвимости находят регулярно у разных производителей. Причины — унаследованный код, сложность спецификаций и долгий цикл обновления прошивок. Ноутбук, купленный три года назад, может не получать патчи, хотя всё ещё используется.
Для администратора вывод простой: прошивка — часть поверхности атаки. Ведите учёт версий BIOS/UEFI, проверяйте обновления и включайте Secure Boot там, где это возможно.
# список устройств, которые умеют обновляться через fwupd
fwupdmgr get-devices --show-all 2>/dev/null | grep -E "Device|Version|Vendor" | head -40
Проверка после обновления
- Убедитесь, что версия прошивки изменилась.
- Проверьте, что Secure Boot включён и система загружается.
- Посмотрите журнал на ошибки ACPI и EFI.
- Проверьте работу сна, Wi-Fi и периферии.
- Сохраните новую версию в инвентаризации.
sudo dmidecode -t bios | grep -E "Version|Release Date"
mokutil --sb-state 2>/dev/null
journalctl -k -b | grep -iE "error|fail" | head -20
Если после обновления что-то перестало работать, не откатывайте прошивку вслепую: сначала проверьте настройки BIOS и журналы. Иногда причина — сброс параметров к значениям по умолчанию.
Итог
Три UEFI-уязвимости в более чем 70 моделях Lenovo позволяют выполнять код на раннем этапе загрузки. Обновите прошивку через Lenovo Vantage, загрузочный образ или fwupd, предварительно обеспечив питание и резервную копию. Если патча для модели нет, ограничьте физический доступ и включите Secure Boot. И добавьте версии прошивок в регулярную инвентаризацию — это теперь базовая гигиена.