ორი დაუცველობა GRUB2-ში, რომელიც საშუალებას გაძლევთ გვერდის ავლით აიღოთ UEFI Secure Boot დაცვა

Раскрыты сведения о двух уязвимостях в загрузчике 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-прослойку.

Linux-ის დისტრიბუციების უმეტესობა იყენებს Microsoft-ის მიერ ციფრულად ხელმოწერილი მცირე ზომის ფენას UEFI Secure Boot რეჟიმში დამოწმებული ჩატვირთვისთვის. ეს ფენა ამოწმებს GRUB2-ს საკუთარი სერტიფიკატით, რომელიც საშუალებას აძლევს დისტრიბუციის დეველოპერებს არ ჰქონდეთ ყველა ბირთვი და GRUB განახლება დამოწმებული Microsoft-ის მიერ. GRUB2-ში დაუცველობა საშუალებას გაძლევთ მიაღწიოთ თქვენი კოდის შესრულებას საფეხურზე, შიმ-შემოწმების წარმატებული გადამოწმების შემდეგ, მაგრამ ოპერაციული სისტემის ჩატვირთვამდე, ჩაერთოთ ნდობის ჯაჭვში, როდესაც აქტიურია უსაფრთხო ჩატვირთვის რეჟიმი და მიიღოთ სრული კონტროლი შემდგომი ჩატვირთვის პროცესზე, მათ შორის სხვა OS-ის ჩატვირთვა, ოპერაციული სისტემის კომპონენტების სისტემის შეცვლა და დაბლოკვის დაცვის გვერდის ავლით.

დაუცველობის დასაბლოკად ციფრული ხელმოწერის გაუქმების გარეშე, დისტრიბუციებს შეუძლიათ გამოიყენონ SBAT (UEFI Secure Boot Advanced Targeting) მექანიზმი, რომელიც მხარდაჭერილია GRUB2, shim და fwupd-ისთვის ყველაზე პოპულარულ Linux დისტრიბუციებში. SBAT შემუშავდა Microsoft-თან ერთად და მოიცავს დამატებით მეტამონაცემების დამატებას UEFI კომპონენტების შესრულებად ფაილებში, რომელიც მოიცავს ინფორმაციას მწარმოებლის, პროდუქტის, კომპონენტისა და ვერსიის შესახებ. მითითებული მეტამონაცემები დამოწმებულია ციფრული ხელმოწერით და შეიძლება ცალკე იყოს შეტანილი UEFI Secure Boot-ის ნებადართული ან აკრძალული კომპონენტების სიებში.

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

წყარო: opennet.ru

ახალი კომენტარის დამატება