Несколько дней назад появилась информация об уязвимости, обнаруженной в патчах загрузчика GRUB2, подготовленных Red Hat. Уже в каталоге Уязвимость CVE-2023-4001 позволяет многим системам с UEFI обходить проверку пароля. установите значение GRUB2, чтобы ограничить доступ к меню загрузки или командной строке загрузчика.
Относительно уязвимости упоминается, что это связано с изменением, добавленным Red Hat в пакет GRUB2. включен в RHEL и Fedora, поэтому проблема не возникает в основном проекте GRUB2. и влияет только на дистрибутивы, в которых применены эти дополнительные исправления, предоставленные Red Hat.
И это Функция защиты паролем в GRUBОн используется для защиты записей меню загрузки и оболочки командной строки менеджера загрузки GRUB. Этот механизм, при активации вместе с паролем BIOS/UEFI, Защищает компьютеры от неавторизованных пользователей которые пытаются загрузить другую операционную систему или повысить привилегии установленной операционной системы.
Установка пароля в GRUB Это достигается с помощью двух основных команд: «пароль» и «пароль_pbkdf2». Эти команды создают пользователя с определенным паролем или его хешем, и только те пользователи, которые указаны в переменной среды «суперпользователи», могут редактировать записи меню загрузки и выполнять команды в оболочке GRUB.
Проблема кроется в ошибке в логике как загрузчик использует UUID для поиска устройства, содержащего файл конфигурации, защищенный паролем, например «/boot/efi/EFI/fedora/grub.cfg». Эта ошибка позволяет пользователю, имеющему физический доступ к компьютеру, подключить внешний накопитель, например USB-флешку, и настроить ему UUID, совпадающий с идентификатором автозагрузочного раздела атакуемой системы.
Во многих системах UEFI в первую очередь обрабатываются внешние диски. и размещаются в списке обнаруженных устройств перед стационарными объектами. Таким образом, подготовленный злоумышленником раздел /boot будет иметь более высокий приоритет обработки. и GRUB2 попытается загрузить файл конфигурации из этого раздела.
При использовании команды «поиск» в GRUB2 для поиска раздела определяется только первое совпадение UUID, что останавливает дальнейший поиск. Если основной файл конфигурации не находится в определенном разделе, GRUB2 выдаст командную строку, предоставляя пользователю полный контроль над остальной частью процесса загрузки.
Непривилегированные пользователи могут знать значение UUID. тома «/boot», что позволяет им потенциально использовать эту уязвимость. Управляя последовательностью блочных устройств во время загрузки, например, подключая съемный диск с дубликатом UUID, пользователи могут обойти защиту паролем GRUB и получить доступ к оболочке без аутентификации.
Утилита «lsblk» может использоваться для определения UUID. раздела непривилегированным локальным пользователем, но внешний пользователь, который не имеет доступа к системе, но может наблюдать за процессом загрузки, может в некоторых дистрибутивах определить UUID по диагностике и сообщениям, отображаемым во время загрузки. Red Hat устранила эту уязвимость, добавив в команду «поиск» новый аргумент, который позволяет операции сканирования UUID связываться только с блокирующими устройствами, используемыми для запуска менеджера загрузки (т. е. раздел /boot должен находиться только на том же диске, что и системный раздел EFI).
Альтернативным (но не реализованным) подходом было бы использование чего-то, что не доступно непривилегированным пользователям, в качестве подписи для поиска тома «/boot». Это может быть файл со случайным именем, расположенный в каталоге с ограниченными разрешениями.
В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.