În încărcătorul GRUB2 8 vulnerabilități. Cea mai periculoasă (), cunoscută sub numele de BootHole, de a ocoli mecanismul UEFI Secure Boot și de a instala software malițios nevalidat. Caracteristica acestei vulnerabilități este că pentru a fi remediată, nu este suficient să actualizezi GRUB2, deoarece un atacator poate utiliza un mediu de boot cu o versiune veche vulnerabilă, semnat digital. Atacatorul poate compromite procesul de verificare nu doar pentru Linux, ci și pentru alte sisteme de operare, inclusiv .
Problema este rezolvată doar prin actualizarea în sistem (dbx, UEFI Revocation List), dar în acest caz se va pierde capacitatea de a utiliza medii de instalare vechi cu Linux. Unii producători de hardware au inclus deja în firmware-urile lor lista actualizată de certificatul revocate, pe astfel de sisteme, în modul UEFI Secure Boot, se vor putea încărca doar versiunile actualizate ale distribuitivelor Linux.
Pentru a elimina vulnerabilitatea din distribuții, va fi necesară și actualizarea instalatorilor, încărcătoarelor, pachetelor kernel, firmware-ului fwupd și stratului shim, generând pentru acestea noi semnături digitale. Utilizatorii vor trebui să actualizeze imaginile de instalare și alte medii de boot, precum și să încarce lista de certificatul revocate (dbx) în firmware-ul UEFI. Până la actualizarea dbx în UEFI, sistemul rămâne vulnerabil, indiferent de actualizările instalate în OS.
Vulnerabilitatea prin suprascrierea buffer-ului, care poate fi exploatat pentru a executa cod arbitrar în timpul inițializării.
Vulnerabilitatea se manifestă la analiza conținutului fișierului de configurare grub.cfg, care se află de obicei în secțiunea ESP (EFI System Partition) și poate fi editat de un atacator cu drepturi de administrator, fără a compromite integritatea fișierelor executabile semnate shim și GRUB2. Datorită din codul parser-ului de configurare, handler-ul de erori fatale YY_FATAL_ERROR doar afișa un avertisment, dar nu încheia execuția programului. Pericolul vulnerabilității este diminuat de necesitatea accesului privilegiat la sistem, cu toate acestea, problema poate fi căutată pentru a implementa rootkit-uri ascunse în prezența accesului fizic la echipament (dacă există posibilitatea de a boota de pe propriul mediu).
În majoritatea distribuțiilor Linux, pentru încărcarea verificată se utilizează un mic , certificat cu semnătură digitală de Microsoft. Acest strat verifică GRUB2 cu certificatul său propriu, permițând dezvoltatorilor de distribuții să nu certifice fiecare actualizare a nucleului și GRUB la Microsoft. Vulnerabilitatea permite, prin modificarea conținutului grub.cfg, executarea codului propriu în etapa de după verificarea cu succes a shim, dar înainte de încărcarea sistemului de operare, infiltrându-se în lanțul de încredere în modul Secure Boot activ și obținând control complet asupra întregului proces de încărcare, inclusiv pentru încărcarea altei OS, modificarea componentelor sistemului de operare și ocolirea protecției. .
Alte vulnerabilități în GRUB2:
- — supraumplerea buffer-ului din lipsa verificării dimensiunii zonei de memorie alocate în grub_malloc;
- — supraumplerea integrului în grub_squash_read_symlink, care poate duce la scrierea datelor dincolo de buffer-ul alocat;
- — supraumplerea integrului în read_section_from_string, care poate duce la scrierea datelor dincolo de buffer-ul alocat;
- — supraumplerea integrului în grub_ext2_read_link, care poate duce la scrierea datelor dincolo de buffer-ul alocat;
- — permite încărcarea nucleelor nesemnatate în modul Secure Boot fără stratul shim;
- — accesarea unei zone de memorie deja eliberate (use-after-free) în timpul redefinirii unei funcții în timpul execuției;
- — supraumplerea integrului în handler-ul dimensiunii initrd.
Actualizările pachetelor cu corecții au fost lansate pentru , , și . Pentru GRUB2 setul de patch-uri.
Sursa: opennet.ro
