Kerentanan di GRUB2 yang memungkinkan Anda melewati UEFI Secure Boot

2 kerentanan telah diperbaiki di bootloader GRUB7 yang memungkinkan Anda melewati mekanisme UEFI Secure Boot dan menjalankan kode yang belum diverifikasi, misalnya, memasukkan malware yang berjalan di tingkat bootloader atau kernel. Selain itu, ada satu kerentanan di lapisan shim, yang juga memungkinkan Anda melewati UEFI Secure Boot. Kelompok kerentanan diberi nama kode Boothole 3, mirip dengan masalah serupa yang sebelumnya diidentifikasi di bootloader.

Untuk mengatasi masalah pada GRUB2 dan shim, distribusi akan dapat menggunakan mekanisme SBAT (UEFI Secure Boot Advanced Targeting), yang didukung untuk GRUB2, shim dan fwupd. 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.

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 memperbaiki masalah pada bootloader, distribusi harus membuat tanda tangan digital internal baru dan memperbarui penginstal, bootloader, paket kernel, firmware fwupd, dan lapisan shim. 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 .

Alih-alih mencabut tanda tangan, SBAT memungkinkan Anda memblokir penggunaannya 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. Saat ini, dukungan SBAT telah ditambahkan ke sebagian besar distribusi Linux populer.

Kerentanan yang teridentifikasi:

  • CVE-2021-3696, CVE-2021-3695 adalah buffer overflows berbasis heap saat memproses gambar PNG yang dirancang khusus, yang secara teoritis dapat digunakan untuk mengeksekusi kode penyerang dan melewati UEFI Secure Boot. Perlu dicatat bahwa masalahnya sulit untuk dieksploitasi, karena pembuatan eksploitasi yang berfungsi memerlukan sejumlah besar faktor dan ketersediaan informasi tentang tata letak memori.
  • CVE-2021-3697 - Buffer underflow dalam kode pemrosesan gambar JPEG. Memanfaatkan masalah ini memerlukan pengetahuan tentang tata letak memori dan memiliki tingkat kompleksitas yang hampir sama dengan masalah PNG (CVSS 7.5).
  • CVE-2022-28733 - Kelebihan bilangan bulat di fungsi grub_net_recv_ip4_packets() memungkinkan parameter rsm->total_len terpengaruh dengan mengirimkan paket IP yang dibuat khusus. Masalah ini ditandai sebagai kerentanan paling berbahaya yang disajikan (CVSS 8.1). Jika berhasil dieksploitasi, kerentanan memungkinkan data ditulis melampaui batas buffer dengan sengaja mengalokasikan ukuran memori yang lebih kecil.
  • CVE-2022-28734 - Buffer overflow satu byte saat memproses header HTTP yang dilucuti. Masalah dapat menyebabkan kerusakan metadata GRUB2 (menulis byte nol tepat setelah buffer berakhir) saat menguraikan permintaan HTTP yang dibuat khusus.
  • CVE-2022-28735 Masalah pada verifikator shim_lock memungkinkan pemuatan file non-kernel. Kerentanan dapat digunakan untuk memuat modul kernel yang tidak ditandatangani atau kode yang belum diverifikasi dalam mode UEFI Secure Boot.
  • CVE-2022-28736 Akses memori yang sudah dibebaskan dalam fungsi grub_cmd_chainloader() melalui menjalankan kembali perintah chainloader, digunakan untuk mem-boot sistem operasi yang tidak didukung oleh GRUB2. Eksploitasi dapat mengakibatkan eksekusi kode penyerang jika penyerang dapat menentukan alokasi memori di GRUB2
  • CVE-2022-28737 - Buffer overflow di lapisan shim terjadi di fungsi handle_image() saat memuat dan mengeksekusi gambar EFI yang dibuat.

Sumber: opennet.ru

Tambah komentar