6 уязвимости в загрузчика GRUB2, позволяващи заобикаляне на UEFI Secure Boot

Публикуван е набор от патчове за отстраняване на 6 уязвимости в GRUB2 bootloader, повечето от които водят до достъп до памет след освобождаването ѝ (use-after-free). Потенциално откритите проблеми могат да се използват за заобикаляне на механизма за верификация на UEFI Secure Boot. Статусът на отстраняването на уязвимостите в дистрибутивите може да се оцени на следните страници: Debian, Ubuntu, SUSE, RHEL, Arch и Fedora. За отстраняването на проблемите в GRUB2 не е достатъчно просто да актуализирате пакета, е необходимо също така да се създадат нови вътрешни цифрови подписи и да се актуализират инсталаторите, bootloader-ите, пакети с ядро, fwupd фърмуерите и shim прослойката.

Разпознати уязвимости:

  • CVE-2025-61661 — запис извън границите на заделен буфер в функцията grub_usb_get_string(), която може да бъде експлоатирана при обработка на низове в UTF-8 и UTF-16, предавани при свързване на USB устройства. Проблемът е предизвикан от това, че буферът е заделен въз основа на размера на низа, посочен в първото съобщение от USB устройството, а размерът при извършване на преобразуване на кодировката е изчислен на базата на последващите операции по четене от USB устройството. Съответно, за атаката може да се използва модифицирано USB устройство, което първоначално връща занижена стойност на размера.
  • CVE-2025-61663, CVE-2025-61664, CVE-2025-54770, CVE-2025-61662 — липса на изчистване на обработчиците на командите "normal", "normal_exit", "net_set_vlan" и "gettext" при разтоварване на модулите "normal", "net" и "gettext", създаваща условия за достъп до памет след освобождаването ѝ (use-after-free) при изпълнение на споменатите команди след разтоварване на съответните модули. Подобни уязвимости също са открити за командите "functional_test" и "all_functional_test", но не им е присвоен CVE идентификатор, тъй като тези команди влизат в състава на тестовата библиотека и не трябва да бъдат включвани в работни сборки.
  • CVE-2025-54771 — грешка при преброяване на референциите на структури "fs" в функцията grub_file_close(), водеща до достъп до памет след освобождаването ѝ (use-after-free).

В повечето дистрибуции на Linux за удостоверяване на зареждането в режим UEFI Secure Boot се използва малък слой shim, удостоверен с цифровия подпис на Microsoft. Този слой удостоверява GRUB2 с помощта на собствен сертификат, което позволява на разработчиците на дистрибуции да не удостоверяват всяко обновление на ядрото и GRUB в Microsoft. Уязвимости в GRUB2 позволяват изпълнението на собствен код на етапа след успешното удостоверяване на shim, но преди зареждането на операционната система, вмешавайки се в веригата на доверие при активен режим Secure Boot и получавайки пълен контрол над последващия процес на зареждане, например, за зареждане на друга ОС, модификация на компонентите на операционната система и заобикаляне на защитата Lockdown.

За блокиране на уязвимостта без отзоваване на цифровия подпис, дистрибутивите могат да използват механизма 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster