Те откриха две уязвимости в GRUB2

уязвимост

Ако бъдат използвани, тези пропуски могат да позволят на нападателите да получат неоторизиран достъп до чувствителна информация или като цяло да причинят проблеми

Бяха разкрити подробности за две уязвимости в програмата за зареждане на GRUB2, които пможе да доведе до изпълнение на код при използване на специално проектирани шрифтове и работа с определени Unicode последователности.

Споменава се, че откритите уязвимости саe може да се използва за заобикаляне на проверения механизъм за зареждане на UEFI Secure Boot. Уязвимостите в GRUB2 позволяват кодът да бъде изпълнен на етапа след успешната проверка на shim, но преди операционната система да бъде заредена, прекъсвайки веригата на доверие с активен режим Secure Boot и придобивайки пълен контрол върху процеса след зареждане, напр. за стартиране на друга операционна система, модифициране на компоненти на операционната система и заобикаляне на защитата при заключване.

По отношение на идентифицираните уязвимости се споменава следното:

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

Пълното смекчаване срещу всички CVE ще изисква корекции, актуализирани с най-новия SBAT (Secure Boot Advanced Targeting) и данни, предоставени от дистрибуции и доставчици.
Този път списъкът за отмяна на UEFI (dbx) няма да се използва и отмяната на повредените
артефактите ще се правят само с SBAT. За информация как да приложите
най-новите анулирания на SBAT, вижте mokutil(1). Корекциите на доставчика могат изрично позволява зареждане на по-стари известни артефакти за зареждане.

GRUB2, shim и други артефакти за зареждане от всички засегнати доставчици ще бъдат актуализирани. ще бъде на разположение, когато ембаргото бъде вдигнато или известно време след това.

Споменава се, че повечето Linux дистрибуции използват малък пластир, цифрово подписан от Microsoft, за проверено зареждане в режим UEFI Secure Boot. Този слой проверява GRUB2 със собствен сертификат, което позволява на разработчиците на разпространение да не сертифицират всяко ядро ​​и GRUB актуализация с Microsoft.

За да блокирате уязвимостта без отнемане на цифровия подпис, дистрибуции може да използва механизма SBAT (UEFI Secure Boot Advanced Targeting), който се поддържа от GRUB2, shim и fwupd в повечето популярни Linux дистрибуции.

SBAT е разработен в сътрудничество с Microsoft и включва добавяне на допълнителни метаданни към изпълнимите файлове на UEFI компонента, включително информация за производителя, продукта, компонента и версията. Посочените метаданни са цифрово подписани и могат да бъдат включени в отделни списъци с разрешени или забранени компоненти за UEFI Secure Boot.

SBAT позволява блокиране на използването на цифров подпис за отделни номера на версиите на компонентите, без да е необходимо да отменяте ключове за Secure Boot. Блокирането на уязвимости чрез SBAT не изисква използването на UEFI CRL (dbx), а по-скоро се извършва на ниво вътрешна подмяна на ключ за генериране на подписи и актуализиране на GRUB2, shim и други артефакти за зареждане, предоставени от дистрибуциите.

Преди въвеждането на SBAT, актуализирането на списъка с анулирани сертификати (dbx, UEFI Revocation List) беше предпоставка за пълно блокиране на уязвимостта, тъй като атакуващият, независимо от използваната операционна система, можеше да използва стартиращ носител с уязвима по-стара версия на GRUB2, сертифициран с цифров подпис за компрометиране на UEFI Secure Boot.

Накрая Струва си да се спомене, че корекцията е пусната като корекция., за да коригирате проблеми в GRUB2, не е достатъчно да актуализирате пакета, ще трябва също така да създадете нови вътрешни цифрови подписи и да актуализирате инсталаторите, зареждащите програми, пакетите на ядрото, fwupd-фърмуера и shim-layer.

Състоянието на отстраняване на уязвимостта в дистрибуциите може да бъде оценено на тези страници: Ubuntu, SUSE, RHELFedoraDebian.

Можете да проверите повече за това в следваща връзка.