Уязвимости GRUB позволяют атаковать ещё до запуска системы.
Загрузчик GRUB получил 73 патча, исправляющих серьезные уязвимости безопасности, однако обновлённая версия до сих пор не выпущена официально. Несмотря на то что исправления были публично опубликованы еще в феврале и уже добавлены в Git-репозиторий проекта, официального релиза так и не последовало. Последняя стабильная версия — GRUB 2.12 — вышла полтора года назад.
О наличии этих критических патчей стало широко известно только сейчас, с выходом шестого релиз-кандидата GNU Boot 0.1 . Именно этот релиз привлёк внимание к множеству потенциально опасных уязвимостей, включая те, которым были присвоены CVE-идентификаторы. Разработчики GNU Boot обновили встроенную копию GRUB, чтобы закрыть эти проблемы.
Одна из самых опасных уязвимостей связана с пользовательскими изображениями, которые заменяют стандартный логотип GRUB. Если такое изображение было специально подготовлено злоумышленником, оно могло использоваться для получения полного контроля над компьютером. Подобная проблема уже встречалась ранее в реализации UEFI с открытым исходным кодом. Эксперты подчёркивают важность использования только проверенных изображений при настройке загрузчиков, поскольку ошибки в обработке графики могут привести к компрометации всей системы.
Под угрозой также оказались пользователи, использующие защищённую загрузку с GPG-подписями или пароли GRUB в сочетании с полным шифрованием диска. Некоторые уязвимости позволяли обойти эти защитные механизмы. Кроме того, выявлены серьезные ошибки в обработке файловых систем: при загрузке с USB-носителя GRUB может автоматически прочитать другую подключённую флешку с файловой системой, специально подготовленной для атаки. Это создаёт риск исполнения вредоносного кода еще до запуска операционной системы.
Общий список уязвимостей включает переполнения буфера, ошибки с целочисленными значениями и другие недочёты. В режиме Secure Boot теперь также заблокирована команда dump
, которая ранее могла быть использована для обхода защиты.
Позитивный момент заключается в том, что большинство крупных дистрибутивов Linux уже применили или планируют применить эти исправления. Это значительно снижает риск масштабной эксплуатации уязвимостей. Однако не все дистрибутивы готовы использовать нестабильные версии GRUB из Git-репозитория. Например, в дистрибутивах Trisquel, Parabola и Guix, придерживающихся политики 100% свободного ПО, выразили сомнения относительно перехода на неподписанные релизы. В Parabola рассматривается возможность создания отдельного пакета grub-git без известных уязвимостей, который будет существовать параллельно с текущим пакетом grub.
Разработчики сообщества надеются, что текущая ситуация подтолкнет проект GRUB к улучшению процесса выпуска новых версий и более оперативному реагированию на проблемы безопасности.