Команда разработчиков загрузчика GRUB2 выпустила масштабный набор исправлений, устраняющий шесть критических уязвимостей, которые могут использоваться для обхода механизма верифицированной загрузки UEFI Secure Boot. Большинство обнаруженных проблем относятся к категории use-after-free (использование после освобождения) - опасному типу уязвимостей, позволяющему злоумышленникам выполнять произвольный код на этапе загрузки операционной системы.
Детали уязвимостей
Выявленные уязвимости затрагивают различные компоненты загрузчика. Например, CVE-2025-61661 связана с записью за пределы выделенного буфера в функции grub_usb_get_string(). Эта проблема проявляется при обработке строк в кодировках UTF-8 и UTF-16, передаваемых при подключении USB-устройств. Уязвимость возникает из-за расхождения между первоначальным размером буфера, выделяемым на основе данных от USB-устройства, и фактическим размером, требуемым при преобразовании кодировки. Соответственно, атака возможна через специально сконфигурированное USB-устройство, изначально возвращающее заниженное значение размера строки.
Четыре другие уязвимости - CVE-2025-61663, CVE-2025-61664, CVE-2025-54770 и CVE-2025-61662 - связаны с отсутствием очистки обработчиков команд при выгрузке модулей. Конкретно, проблемы затрагивают команды "normal", "normal_exit", "net_set_vlan" и "gettext". После выгрузки соответствующих модулей выполнение этих команд приводит к обращению к уже освобожденной памяти. Аналогичные проблемы обнаружены для тестовых команд "functional_test" и "all_functional_test", но им не присвоены CVE-идентификаторы, поскольку они входят в тестовую библиотеку и не должны присутствовать в рабочих сборках.
Шестая уязвимость, CVE-2025-54771, вызвана ошибкой подсчета ссылок на файловые структуры в функции grub_file_close(). Эта проблема также приводит к использованию памяти после ее освобождения, создавая дополнительные возможности для компрометации системы.
Особую опасность эти уязвимости представляют для систем с включенным UEFI Secure Boot. В современных Linux-дистрибутивах для верифицированной загрузки используется прослойка shim, заверенная цифровой подписью Microsoft. Данная прослойка самостоятельно верифицирует GRUB2 с помощью собственного сертификата, что избавляет разработчиков дистрибутивов от необходимости заверять каждое обновление в Microsoft. Обнаруженные уязвимости позволяют злоумышленникам выполнить произвольный код после успешной верификации shim, но до загрузки операционной системы, тем самым обходя всю цепочку доверия Secure Boot.
Последствия успешной эксплуатации могут быть катастрофическими. Злоумышленники получают полный контроль над процессом загрузки, что позволяет загружать модифицированные операционные системы, изменять системные компоненты и обходить защиту Lockdown. Кроме того, атакующие могут устанавливать постоянное вредоносное ПО (persistence), сохраняющее контроль над системой даже после переустановки операционной системы.
Для полного устранения уязвимостей недостаточно простого обновления пакетов GRUB2. Требуется комплексный подход, включающий формирование новых внутренних цифровых подписей и обновление инсталляторов, загрузчиков, пакетов с ядром, прошивок fwupd и shim-прослойки. Статус устранения проблем для различных дистрибутивов можно отслеживать на официальных страницах Debian, Ubuntu, SUSE, RHEL, Arch и Fedora.
В качестве эффективного механизма блокировки уязвимостей без отзыва цифровых подписей разработчики рекомендуют использовать технологию SBAT (UEFI Secure Boot Advanced Targeting). Этот механизм, разработанный совместно с Microsoft, предполагает добавление в исполняемые файлы UEFI дополнительных метаданных, содержащих информацию о производителе, продукте, компоненте и версии. Данные метаданные заверяются цифровой подписью и могут включаться в отдельные списки разрешенных или запрещенных компонентов для UEFI Secure Boot.
Важное преимущество SBAT заключается в возможности блокировать использование цифровой подписи для конкретных версий компонентов без необходимости отзыва ключей Secure Boot. Этот подход не требует обновления списка отозванных сертификатов UEFI (dbx), а осуществляется через замену внутреннего ключа для формирования подписей и обновление GRUB2, shim и других загрузочных компонентов. До внедрения SBAT обновление списка отозванных сертификатов было обязательным условием полного блокирования уязвимостей, поскольку злоумышленники могли использовать загрузочные носители со старыми уязвимыми версиями GRUB2, заверенными действующей цифровой подписью.
Поддержка SBAT уже реализована для GRUB2, shim и fwupd в большинстве популярных Linux-дистрибутивов. Системным администраторам рекомендуется как можно скорее установить все доступные обновления и убедиться в правильности конфигурации механизмов безопасной загрузки. Своевременное применение исправлений критически важно для поддержания целостности цепочки доверия и предотвращения потенциальных атак на инфраструктуру.
Ссылки
- https://lists.gnu.org/archive/html/grub-devel/2025-11/msg00155.html
- https://security-tracker.debian.org/tracker/CVE-2025-61661
- https://security-tracker.debian.org/tracker/CVE-2025-61663
- https://security-tracker.debian.org/tracker/CVE-2025-61664
- https://security-tracker.debian.org/tracker/CVE-2025-54770
- https://security-tracker.debian.org/tracker/CVE-2025-61662
- https://security-tracker.debian.org/tracker/CVE-2025-54771