Разкриха информация за уязвимост (CVE-2023-4001) в патчовете за зареждача GRUB2, подготвени от компания Red Hat. Уязвимостта позволява на много системи с UEFI да заобиколят проверката на паролата, зададена в GRUB2 за ограничаване на достъпа до менюто за зареждане или командния ред на зареждача. Проблемът произтича от промяна, добавена от компания Red Hat в пакета с GRUB2, доставян в RHEL и Fedora Linux. Проблемът не се проявява в основния проект GRUB2 и засяга само дистрибутивите, които са приложили допълнителни патчове от Red Hat.
Проблемът е причинен от грешка в логиката на използване на UUID за търсене от зареждача на устройството с конфигурационния файл (например, „/boot/efi/EFI/fedora/grub.cfg“), съдържащ хеша на паролата. За заобикаляне на аутентификацията, потребител с физически достъп до компютъра може да свърже външно устройство, като USB Flash, задавайки UUID, повтарящ идентификатора на зареждащия дял /boot на атакуваната система.
Много UEFI-системи предимно обработват външни устройства и ги поставят в списъка на откритите устройства преди стационарните устройства, така че дялът /boot, подготвен от атакуващия, ще има по-висок приоритет при обработката. Съответно от този дял GRUB2 ще се опита да зареди конфигурационния файл. По време на търсенето на дяла с командата „search“ в GRUB2 се извършва определяне само на първото съвпадение на UUID, след което търсенето спира. Ако в определен дял основният конфигурационен файл не бъде намерен, GRUB2 ще изведе команден ред, позволяващ пълен контрол върху по-нататъшния процес на зареждане.
За определяне на UUID на дяла от местен непривилегирован потребител може да се използва утилитата „lsblk“, но потребител, който не разполага с достъп до системата, но може да наблюдава процеса на зареждане, в някои дистрибуции може да определи UUID от показаните по време на зареждането диагностични съобщения. Уязвимостта е отстранена от Red Hat чрез добавяне на нов аргумент към командата „search“, който позволява да се свърже операцията по сканиране на UUID само с блоковите устройства, използвани за стартиране на зареждача (т.е. дялът /boot трябва да бъде само на същия диск, на който е системният дял EFI).
Източник: opennet.ru
