Две рањивости у ГРУБ2 које вам омогућавају да заобиђете УЕФИ Сецуре Боот заштиту

Раскрыты сведения о двух уязвимостях в загрузчике GRUB2, которые могут привести к выполнению кода при использовании специально оформленных шрифтов и обработке определённых Unicode-последовательностей. Уязвимости могут использоваться для обхода механизма верифицированной загрузки UEFI Secure Boot.

Идентификоване рањивости:

  • CVE-2022-2601 — переполнение буфера в функции grub_font_construct_glyph() при обработке специально оформленных шрифтов в формате pf2, возникающее из-за неверного расчёта параметра max_glyph_size и выделения области памяти, заведомо меньшей, чем необходимо для размещения глифов.
  • CVE-2022-3775 — запись за пределы выделенной области памяти при отрисовке некоторых последовательностей Unicode специально оформленным шрифтом. Проблема присутствует в коде обработки шрифтов и вызвана отсутствием должных проверок соответствия ширины и высоты глифа размеру имеющейся битовой карты. Атакующий может подобрать ввод таким образом, чтобы вызвать запись хвоста данных на пределами выделенного буфера. Отмечается, что несмотря на сложность эксплуатации уязвимости, доведение проблемы до выполнения кода не исключается.

Исправление опубликовано в виде патча. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Ubuntu, SUSE, RHEL, Fedora, Debian. Для устранения проблем в GRUB2 недостаточно просто обновить пакет, потребуется также сформировать новые внутренние цифровые подписи и обновлять инсталляторы, загрузчики, пакеты с ядром, fwupd-прошивки и shim-прослойку.

Већина Линук дистрибуција користи мали подложни слој који је дигитално потписао Мицрософт за верификовано покретање у УЕФИ режиму безбедног покретања. Овај слој верификује ГРУБ2 сопственим сертификатом, што омогућава програмерима дистрибуције да немају свако језгро и ГРУБ ажурирање сертификовано од стране Мицрософта. Рањивости у ГРУБ2 вам омогућавају да постигнете извршење вашег кода у фази након успешне верификације шим-а, али пре учитавања оперативног система, уклапање у ланац поверења када је режим безбедног покретања активан и добијање потпуне контроле над даљим процесом покретања, укључујући учитавање другог ОС-а, модификовање система компоненти оперативног система и заобилажење заштите од закључавања.

Да би блокирали рањивост без опозива дигиталног потписа, дистрибуције могу да користе СБАТ (УЕФИ Сецуре Боот Адванцед Таргетинг) механизам, који је подржан за ГРУБ2, схим и фвупд у већини популарних Линук дистрибуција. СБАТ је развијен заједно са Мицрософтом и укључује додавање додатних метаподатака у извршне датотеке УЕФИ компоненти, што укључује информације о произвођачу, производу, компоненти и верзији. Наведени метаподаци су сертификовани дигиталним потписом и могу се посебно укључити у листе дозвољених или забрањених компоненти за УЕФИ Сецуре Боот.

SBAT позволяет блокировать использование цифровой подписи для отдельных номеров версий компонентов без необходимости отзыва ключей для Secure Boot. Блокирование уязвимостей через SBAT не требует использования списка отозванных сертификатов UEFI (dbx), а производится на уровне замены внутреннего ключа для формирования подписей и обновления GRUB2, shim и других поставляемых дистрибутивами загрузочных артефактов. До внедрения SBAT, обновление списка отозванных сертификатов (dbx, UEFI Revocation List) было обязательным условием полного блокирования уязвимости, так как атакующий, независимо от используемой операционной системы, мог для компрометации UEFI Secure Boot использовать загрузочный носитель со старой уязвимой версией GRUB2, заверенной цифровой подписью.

Извор: опеннет.ру

Додај коментар