A GRUB2 betöltőben 8 sebezhetőség. A legveszélyesebb (), amelynek kódneve BootHole, a UEFI Secure Boot mechanizmusának megkerülését és a nem hitelesített kártékony szoftver telepítését. A sebezhetőség sajátossága, hogy a GRUB2 frissítése önmagában nem elegendő a megszüntetéséhez, mivel a támadó egy régi, aláírt sebezhető verziós indító médiát használhat. A támadó képes kompromittálni a hitelesítési folyamatot nemcsak Linux, hanem más operációs rendszerek esetében is, beleértve .
A probléma csak a (dbx, UEFI Visszavonási Lista) frissítésével oldható meg, de ebben az esetben elveszik a régi Linux telepítő médiák használatának lehetősége. Néhány hardvergyártó már felvette a frissített visszavont tanúsítványok listáját a firmware-jébe, ilyen rendszereken az UEFI Secure Boot üzemmódban csak a frissített Linux disztribúciók betöltése lesz lehetséges.
A sebezhetőség megszüntetéséhez a disztribúciókban szintén frissíteni kell az installálókat, betöltőket, a kernel csomagokat, fwupd firmware-t és a shim réteget, új digitális aláírások generálásával. A felhasználóknak frissíteniük kell a telepítési képeket és egyéb betöltő médiákat, valamint betölteniük kell a visszavont tanúsítványok listáját (dbx) az UEFI firmware-be. A dbx UEFI frissítése előtt a rendszer sebezhető marad, függetlenül az OS frissítéseitől.
Sérülékenység többpontos puffertúltöltés, amelyet a betöltési folyamat során lehet kihasználni tetszőleges kód végrehajtására.
A sebezhetőség a grub.cfg konfigurációs fájl tartalmának elemzésekor jelentkezik, amely általában az ESP (EFI Rendszerpartíció) szakaszban található, és a támadó, aki rendelkezik adminisztrátori jogokkal, szerkesztheti anélkül, hogy megsértené a shim és a GRUB2 aláírt végrehajtható fájljainak integritását. A A konfigurációs elemző kódjában a YY_FATAL_ERROR fatális hiba kezelője csak figyelmeztetést adott ki, de nem zárta le a programot. A sebezhetőség kockázata csökken, mivel szükséges a rendszergazdai hozzáférés, azonban a probléma elérhetővé válhat rejtett rootkitek bevezetésére, amennyiben fizikai hozzáférés áll rendelkezésre az eszközhöz (ha lehetőség van a saját adathordozóról való bootolásra).
A legtöbb Linux disztribúcióban a megerősített indításhoz egy kicsi , amelyet a Microsoft digitális aláírása hitelesít. Ez a réteg a GRUB2-t a saját tanúsítványával hitelesíti, ami lehetővé teszi a disztribúciók fejlesztői számára, hogy ne kelljen minden egyes kernel és GRUB frissítést a Microsoftban hitelesíteni. A sebezhetőség lehetővé teszi, hogy a grub.cfg tartalmának módosításával saját kódunk futása érhető el a shim sikeres hitelesítése után, de a operációs rendszer betöltése előtt, beleavatkozva a bizalmi láncba, aktív Secure Boot üzemmódban, így teljes ellenőrzést biztosítva a további betöltési folyamat felett, beleértve a másik operációs rendszer betöltését, az operációs rendszer összetevőinek módosítását és a védelem megkerülését. .
További sebezhetőségek a GRUB2-ben:
- — puffer túlcsordulás a grub_malloc méretellenőrzésének hiánya miatt;
- — egész szám túlfutás a grub_squash_read_symlink-ben, ami adatokat írhat a kijelölt puffer határain túlra;
- — egész szám túlfutás a read_section_from_string-ben, ami szintén adatokat írhat a kijelölt puffer határain túlra;
- — egész szám túlfutás a grub_ext2_read_link-ben, ami adatokat írhat a kijelölt puffer határain túlra;
- — lehetővé teszi a nem aláírt kernel betöltését közvetlen indításkor Secure Boot üzemmódban shim réteg nélkül;
- — már felszabadított memória terület (use-after-free) elérése egy funkció futás közbeni felülírásakor;
- — egész szám túlfutás az initrd méretkezelőjében.
A javítócsomagok frissítéseit kiadták a , , és . A GRUB2-nek patch készlet.
Forrás: opennet.ru
