Разкрито е информация за уязвимост (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
