Dua kerentanan di GRUB2 yang memungkinkan Anda melewati perlindungan UEFI Secure Boot

Informasi telah diungkapkan tentang dua kerentanan pada bootloader GRUB2, yang dapat menyebabkan eksekusi kode saat menggunakan font yang dirancang khusus dan memproses urutan Unicode tertentu. Kerentanan dapat digunakan untuk melewati mekanisme boot terverifikasi UEFI Secure Boot.

Kerentanan yang teridentifikasi:

  • CVE-2022-2601 - Buffer overflow di fungsi grub_font_construct_glyph() saat memproses font yang dirancang khusus dalam format pf2, yang terjadi karena perhitungan parameter max_glyph_size yang salah dan alokasi area memori yang jelas lebih kecil dari yang diperlukan untuk mengakomodasi mesin terbang.
  • CVE-2022-3775 Penulisan di luar batas terjadi saat merender beberapa rangkaian Unicode dalam font bergaya khusus. Masalahnya ada pada kode pemrosesan font dan disebabkan oleh kurangnya pemeriksaan yang tepat untuk memastikan bahwa lebar dan tinggi mesin terbang sesuai dengan ukuran bitmap yang tersedia. Seorang penyerang dapat menyusun masukan sedemikian rupa sehingga menyebabkan ekor data ditulis ke luar buffer yang dialokasikan. Perlu dicatat bahwa meskipun kompleksitas dalam mengeksploitasi kerentanan, membawa masalah ke eksekusi kode tidak dikecualikan.

Perbaikan telah dipublikasikan sebagai tambalan. Status penghapusan kerentanan dalam distribusi dapat dinilai di halaman berikut: Ubuntu, SUSE, RHEL, Fedora, Debian. Untuk memperbaiki masalah di GRUB2, tidak cukup hanya memperbarui paket; Anda juga perlu membuat tanda tangan digital internal baru dan memperbarui penginstal, bootloader, paket kernel, firmware fwupd, dan lapisan shim.

Sebagian besar distribusi Linux menggunakan lapisan shim kecil yang ditandatangani secara digital oleh Microsoft untuk boot terverifikasi dalam mode UEFI Secure Boot. Lapisan ini memverifikasi GRUB2 dengan sertifikatnya sendiri, yang memungkinkan pengembang distribusi untuk tidak setiap kernel dan pembaruan GRUB disertifikasi oleh Microsoft. Kerentanan di GRUB2 memungkinkan Anda 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 kontrol penuh atas proses boot selanjutnya, termasuk memuat OS lain, memodifikasi sistem komponen sistem operasi dan melewati perlindungan Lockdown.

Untuk memblokir kerentanan tanpa mencabut tanda tangan digital, distribusi dapat menggunakan mekanisme SBAT (UEFI Secure Boot Advanced Targeting), yang didukung untuk GRUB2, shim dan fwupd di sebagian besar distribusi Linux populer. SBAT dikembangkan bersama dengan Microsoft dan melibatkan penambahan metadata tambahan ke file komponen UEFI yang dapat dieksekusi, yang mencakup informasi tentang pabrikan, produk, komponen, dan versi. Metadata yang ditentukan disertifikasi dengan tanda tangan digital dan dapat dimasukkan secara terpisah dalam daftar komponen yang diizinkan atau dilarang untuk UEFI Secure Boot.

SBAT memungkinkan Anda memblokir penggunaan tanda tangan digital untuk nomor versi komponen individual tanpa harus mencabut kunci untuk Boot Aman. Memblokir kerentanan melalui SBAT tidak memerlukan penggunaan daftar pencabutan sertifikat UEFI (dbx), tetapi dilakukan pada tingkat penggantian kunci internal untuk menghasilkan tanda tangan dan memperbarui GRUB2, shim, dan artefak boot lainnya yang disediakan oleh distribusi. Sebelum diperkenalkannya SBAT, memperbarui daftar pencabutan sertifikat (dbx, UEFI Revocation List) merupakan prasyarat untuk memblokir kerentanan sepenuhnya, karena penyerang, apa pun sistem operasi yang digunakan, dapat menggunakan media yang dapat di-boot dengan versi lama GRUB2 yang rentan, disertifikasi dengan tanda tangan digital, untuk mengkompromikan UEFI Secure Boot .

Sumber: opennet.ru

Tambah komentar