Kerentanan kritis pada bootloader GRUB2 yang memungkinkan Anda melewati UEFI Secure Boot

Di bootloader GRUB2 teridentifikasi 8 kerentanan. Paling berbahaya masalah (CVE-2020-10713), yang diberi nama kode BootHole, beri kesempatan lewati mekanisme UEFI Secure Boot dan instal malware yang belum terverifikasi. Keunikan kerentanan ini adalah untuk menghilangkannya, memperbarui GRUB2 saja tidak cukup, karena penyerang dapat menggunakan media yang dapat di-boot dengan versi lama yang rentan, disertifikasi oleh tanda tangan digital. Penyerang dapat membahayakan proses verifikasi tidak hanya di Linux, tetapi juga sistem operasi lain, termasuk Windows.

Masalahnya hanya dapat diatasi dengan memperbarui sistem daftar pencabutan sertifikat (dbx, Daftar Pencabutan UEFI), namun dalam kasus ini kemampuan untuk menggunakan media instalasi lama dengan Linux akan hilang. Beberapa produsen peralatan telah menyertakan daftar terbaru sertifikat pencabutan dalam firmware mereka; pada sistem seperti itu, hanya versi distribusi Linux yang diperbarui yang dapat dimuat dalam mode UEFI Secure Boot.

Untuk menghilangkan kerentanan dalam distribusi, Anda juga perlu memperbarui penginstal, bootloader, paket kernel, firmware fwupd, dan lapisan shim, sehingga menghasilkan tanda tangan digital baru untuknya. Pengguna akan diminta untuk memperbarui gambar instalasi dan media lain yang dapat di-boot, serta memuat daftar pencabutan sertifikat (dbx) ke dalam firmware UEFI. Sebelum memperbarui dbx ke UEFI, sistem tetap rentan terlepas dari instalasi pembaruan di OS.

Kerentanan disebabkan buffer overflow yang dapat dimanfaatkan untuk mengeksekusi kode arbitrer selama proses booting.
Kerentanan terjadi ketika mengurai konten file konfigurasi grub.cfg, yang biasanya terletak di ESP (EFI System Partition) dan dapat diedit oleh penyerang dengan hak administrator tanpa melanggar integritas file executable shim dan GRUB2 yang ditandatangani. Karena Kesalahan pada kode parser konfigurasi, handler kesalahan parsing fatal YY_FATAL_ERROR hanya menampilkan peringatan, tetapi tidak menghentikan program. Risiko kerentanan dikurangi dengan kebutuhan untuk memiliki akses istimewa ke sistem; namun, masalahnya mungkin diperlukan untuk memasukkan rootkit tersembunyi jika Anda memiliki akses fisik ke peralatan (jika memungkinkan untuk melakukan booting dari media Anda sendiri).

Kebanyakan distribusi Linux menggunakan file kecil lapisan shim, ditandatangani secara digital oleh Microsoft. Lapisan ini memverifikasi GRUB2 dengan sertifikatnya sendiri, yang memungkinkan pengembang distribusi untuk tidak setiap kernel dan pembaruan GRUB disertifikasi oleh Microsoft. Kerentanan memungkinkan, dengan mengubah konten grub.cfg, untuk mencapai eksekusi kode Anda pada tahap setelah verifikasi shim berhasil, tetapi sebelum memuat sistem operasi, masuk ke dalam rantai kepercayaan ketika mode Boot Aman aktif dan mendapatkan kendali penuh selama proses booting selanjutnya, termasuk memuat OS lain, modifikasi komponen sistem operasi, dan melewati proteksi Lockdown.

Kerentanan kritis pada bootloader GRUB2 yang memungkinkan Anda melewati UEFI Secure Boot

Kerentanan lain di GRUB2:

  • CVE-2020-14308 — buffer overflow karena kurangnya pemeriksaan ukuran area memori yang dialokasikan di grub_malloc;
  • CVE-2020-14309 - integer overflow di grub_squash_read_symlink, yang dapat menyebabkan data ditulis melebihi buffer yang dialokasikan;
  • CVE-2020-14310 - integer overflow di read_section_from_string, yang dapat menyebabkan penulisan data di luar buffer yang dialokasikan;
  • CVE-2020-14311 - integer overflow di grub_ext2_read_link, yang dapat menyebabkan data ditulis melebihi buffer yang dialokasikan;
  • CVE-2020-15705 — memungkinkan Anda memuat kernel yang tidak ditandatangani selama boot langsung dalam mode Boot Aman tanpa lapisan shim;
  • CVE-2020-15706 — akses ke area memori yang sudah dikosongkan (digunakan setelah bebas) saat mendefinisikan ulang suatu fungsi saat runtime;
  • CVE-2020-15707 — integer overflow di pengendali ukuran initrd.

Pembaruan paket perbaikan terbaru telah dirilis untuk Debian, Ubuntu, RHEL и SUSE. Untuk GRUB2 diajukan kumpulan tambalan.

Sumber: opennet.ru

Tambah komentar