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

В GRUB2 зареждач выявлено 8 уязвимости. Най-опасната проблем (CVE-2020-10713), известна като BootHole, дава възможност да се заобиколи механизмът UEFI Secure Boot и да се инсталира несертифициран злонамерен софтуер. Специфичността на тази уязвимост е, че простото актуализиране на GRUB2 не е достатъчно, тъй като атакуващият може да използва стартов носител със стара уязвима версия, сертифицирана с цифров подпис. Атакуващият може да компрометира процеса на верификация не само на Linux, но и на други операционни системи, включително Windows.

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

За отстраняване на уязвимостта в дистрибутивите също ще е необходимо да се актуализират инсталатори, зареждачи, пакети с ядро, фърмуерни актуализации и shim слой, генерирайки нови цифрови подписи за тях. Потребителите ще трябва да актуализират инсталационните образи и други стартови носители, както и да заредят списъка на оттеглените сертификати (dbx) в UEFI фърмуера. До актуализацията на dbx в UEFI системата остава уязвима, независимо от инсталираните актуализации в ОС.

Уязвимостта причинена с перепълване на буфера, което може да бъде експлоатирано за изпълнение на произволен код по време на зареждане.
Уязвимостта се проявява при обработка на съдържанието на конфигурационния файл grub.cfg, който обикновено се поставя в ESP (EFI System Partition) и може да бъде редактиран от атакуващ администратор, без да се нарушава целостта на подписаните изпълними файлове shim и GRUB2. Поради грешка в кода на парсера на конфигурацията обработчикът на фатални грешки в парсирането YY_FATAL_ERROR просто извежда предупреждение, но не прекратява работата на програмата. Опасността от уязвимостта намалява с необходимостта от привилегирован достъп до системата, въпреки това, проблемът може да бъде използван за внедряване на скрити rootkit, при наличието на физически достъп до хардуера (при възможност за зареждане от собствен носител).

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

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

Други уязвимости в GRUB2:

  • CVE-2020-14308 — преливане на буфера поради липса на проверка на размера на алокираната памет в grub_malloc;
  • CVE-2020-14309 — целочислено преливане в grub_squash_read_symlink, което може да доведе до запис на данни извън алокирания буфер;
  • CVE-2020-14310 — целочислено преливане в read_section_from_string, което може да доведе до запис на данни извън алокирания буфер;
  • CVE-2020-14311 — целочислено преливане в grub_ext2_read_link, което може да доведе до запис на данни извън алокирания буфер;
  • CVE-2020-15705 — позволява зареждането на неподписани ядра при директно зареждане в режим Secure Boot без shim слой;
  • CVE-2020-15706 — достъп до вече освободена област от паметта (use-after-free) при преопределяне на функция по време на изпълнение;
  • CVE-2020-15707 — целочислено преливане в обработчика на размер initrd.

Обновления на пакетите с корекции са издадени за Debian, Ubuntu, RHEL и SUSE. За GRUB2 е предложен набор от пачове.

Източник: opennet.ru

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