Kerentanan kritikal dalam pemuat but GRUB2 yang membolehkan anda memintas UEFI Secure Boot

Dalam pemuat but GRUB2 didedahkan 8 kelemahan. Paling berbahaya masalah (CVE-2020 10713-), yang dinamakan kod BootHole, beri peluang memintas mekanisme UEFI Secure Boot dan pasang perisian hasad yang tidak disahkan. Keistimewaan kerentanan ini ialah untuk menghapuskannya, ia tidak mencukupi untuk mengemas kini GRUB2, kerana penyerang boleh menggunakan media boleh boot dengan versi terdedah lama yang diperakui oleh tandatangan digital. Penyerang boleh menjejaskan proses pengesahan bukan sahaja Linux, tetapi juga sistem pengendalian lain, termasuk Windows.

Masalahnya hanya boleh diselesaikan dengan mengemas kini sistem senarai pembatalan sijil (dbx, Senarai Pembatalan UEFI), tetapi dalam kes ini keupayaan untuk menggunakan media pemasangan lama dengan Linux akan hilang. Sesetengah pengeluar peralatan telah pun menyertakan senarai kemas kini sijil pembatalan dalam perisian tegar mereka; pada sistem sedemikian, hanya binaan pengedaran Linux yang dikemas kini boleh dimuatkan dalam mod UEFI Secure Boot.

Untuk menghapuskan kelemahan dalam pengedaran, anda juga perlu mengemas kini pemasang, pemuat but, pakej kernel, perisian tegar fwupd dan lapisan shim, menjana tandatangan digital baharu untuk mereka. Pengguna akan dikehendaki mengemas kini imej pemasangan dan media boleh boot lain, serta memuatkan senarai pembatalan sijil (dbx) ke dalam perisian tegar UEFI. Sebelum mengemas kini dbx kepada UEFI, sistem kekal terdedah tanpa mengira pemasangan kemas kini dalam OS.

Kerentanan disebabkan limpahan penimbal yang boleh dieksploitasi untuk melaksanakan kod sewenang-wenangnya semasa proses but.
Kerentanan berlaku apabila menghuraikan kandungan fail konfigurasi grub.cfg, yang biasanya terletak dalam ESP (EFI System Partition) dan boleh diedit oleh penyerang dengan hak pentadbir tanpa melanggar integriti shim yang ditandatangani dan fail boleh laku GRUB2. Disebabkan Kesilapan dalam kod parser konfigurasi, pengendali untuk ralat penghuraian maut YY_FATAL_ERROR hanya memaparkan amaran, tetapi tidak menamatkan program. Risiko kerentanan dikurangkan dengan keperluan untuk mempunyai akses istimewa kepada sistem; walau bagaimanapun, masalah mungkin diperlukan untuk memperkenalkan rootkit tersembunyi jika anda mempunyai akses fizikal kepada peralatan (jika boleh boot dari media anda sendiri).

Kebanyakan pengedaran Linux menggunakan kecil lapisan shim, ditandatangani secara digital oleh Microsoft. Lapisan ini mengesahkan GRUB2 dengan sijilnya sendiri, yang membenarkan pembangun pengedaran tidak mempunyai setiap kernel dan kemas kini GRUB yang diperakui oleh Microsoft. Kerentanan membenarkan, dengan menukar kandungan grub.cfg, untuk mencapai pelaksanaan kod anda pada peringkat selepas pengesahan shim berjaya, tetapi sebelum memuatkan sistem pengendalian, menyatu ke dalam rantai kepercayaan apabila mod Boot Selamat aktif dan mendapat kawalan penuh sepanjang proses but selanjutnya, termasuk memuatkan OS lain , pengubahsuaian komponen sistem pengendalian dan memintas perlindungan kuncian.

Kerentanan kritikal dalam pemuat but GRUB2 yang membolehkan anda memintas UEFI Secure Boot

Kelemahan lain dalam GRUB2:

  • CVE-2020 14308- β€” limpahan penimbal kerana kekurangan menyemak saiz kawasan memori yang diperuntukkan dalam grub_malloc;
  • CVE-2020 14309- - limpahan integer dalam grub_squash_read_symlink, yang boleh menyebabkan data ditulis melebihi penimbal yang diperuntukkan;
  • CVE-2020 14310- - limpahan integer dalam read_section_from_string, yang boleh membawa kepada penulisan data melebihi penimbal yang diperuntukkan;
  • CVE-2020 14311- - limpahan integer dalam grub_ext2_read_link, yang boleh menyebabkan data ditulis melebihi penimbal yang diperuntukkan;
  • CVE-2020 15705- β€” membolehkan anda memuatkan kernel yang tidak ditandatangani semasa but terus dalam mod Secure Boot tanpa lapisan shim;
  • CVE-2020 15706- β€” akses kepada kawasan memori yang telah dibebaskan (guna-selepas-bebas) apabila mentakrifkan semula fungsi pada masa jalan;
  • CVE-2020 15707- β€” limpahan integer dalam pengendali saiz initrd.

Kemas kini pek hotfix telah dikeluarkan untuk Debian, Ubuntu, RHEL ΠΈ SUSE. Untuk GRUB2 dicadangkan set tampalan.

Sumber: opennet.ru

Tambah komen