Kritische Schwachstelle im Bootloader GRUB2, die es ermöglicht, UEFI Secure Boot zu umgehen

Im GRUB2-Bootloader entdeckt 8 Schwachstellen. Die gefährlichste Problem (CVE-2020-10713), die den Codenamen BootHole trägt, ermöglicht es den UEFI Secure Boot-Mechanismus zu umgehen und nicht verifiziertes Malware zu installieren. Ein Merkmal dieser Schwachstelle ist, dass es nicht ausreicht, GRUB2 zu aktualisieren, da ein Angreifer ein bootfähiges Medium mit einer alten, anfälligen Version, die mit einer digitalen Signatur signiert ist, verwenden kann. Der Angreifer kann den Verifizierungsprozess nicht nur von Linux, sondern auch von anderen Betriebssystemen, einschließlich Windows.

Das Problem wird nur durch ein Update im System der Liste der widerrufenen Zertifikate (dbx, UEFI Revocation List) behoben, aber in diesem Fall geht die Möglichkeit verloren, alte Installationsmedien mit Linux zu verwenden. Einige Hardwarehersteller haben bereits die aktualisierte Liste der widerrufenen Zertifikate in ihre Firmware integriert, auf solchen Systemen kann im UEFI Secure Boot-Modus nur mit aktualisierten Versionen der Linux-Distributionen gebootet werden.

Um die Schwachstelle in den Distributionen zu beheben, müssen auch die Installer, Bootloader, Kernel-Pakete, fwupd-Firmware und die shim-Schicht aktualisiert werden, wobei neue digitale Signaturen für sie generiert werden müssen. Benutzer müssen die Installationsabbilder und andere bootfähige Medien aktualisieren sowie die Liste der widerrufenen Zertifikate (dbx) in die UEFI-Firmware laden. Bis die dbx in der UEFI aktualisiert wird, bleibt das System verwundbar, unabhängig von den installierten Updates im Betriebssystem.

Schwachstelle wird verursacht Bufferüberlauf, der ausgenutzt werden kann, um beliebigen Code während des Bootvorgangs auszuführen.
Die Schwachstelle tritt beim Parsen des Inhalts der grub.cfg-Konfigurationsdatei auf, die sich normalerweise im ESP (EFI System Partition) befindet und von einem Angreifer, der Administratorrechte hat, bearbeitet werden kann, ohne die Integrität der signierten Executables von shim und GRUB2 zu verletzen. Aufgrund von Fehler einem Fehler im Konfigurationsparser gab der Fehlerbehandlungsmechanismus YY_FATAL_ERROR lediglich eine Warnung aus, ohne das Programm zu beenden. Das Risiko dieser Schwachstelle wird durch die Notwendigkeit privilegierten Zugriffs auf das System gemildert, trotzdem könnte das Problem für die Implementierung verborgener Rootkits relevant werden, wenn physischer Zugang zu der Hardware besteht (bei der Möglichkeit, von einem eigenen Medium zu booten).

In den meisten Linux-Distributionen wird für den verifizierten Start eine kleine Shim-Schicht, die durch eine digitale Signatur von Microsoft zertifiziert ist. Diese Schicht verifiziert GRUB2 mit ihrem eigenen Zertifikat, was es den Entwicklern der Distributionen ermöglicht, nicht jedes Update des Kernels und GRUB bei Microsoft zertifizieren zu müssen. Die Schwachstelle ermöglicht es, durch die Änderung des Inhalts von grub.cfg eigenen Code nach erfolgreicher Verifizierung von Shim auszuführen, jedoch vor dem Laden des Betriebssystems, sich in die Vertrauenskette im aktiven Secure Boot-Modus einzuschleusen und vollständige Kontrolle über den weiteren Boot-Prozess zu erhalten, einschließlich des Ladens eines anderen OS, der Modifizierung von Betriebssystemkomponenten und dem Umgehen von Schutzmaßnahmen. Sperrmodus.

Kritische Schwachstelle im Bootloader GRUB2, die es ermöglicht, UEFI Secure Boot zu umgehen

Andere Schwachstellen in GRUB2:

  • CVE-2020-14308 — Pufferüberlauf aufgrund fehlender Größenprüfung des zugewiesenen Speicherbereichs in grub_malloc;
  • CVE-2020-14309 — Ganzzahlüberlauf in grub_squash_read_symlink, der zu einer Datenübertragung außerhalb des zugewiesenen Puffers führen kann;
  • CVE-2020-14310 — Ganzzahlüberlauf in read_section_from_string, der zu einer Datenübertragung außerhalb des zugewiesenen Puffers führen kann;
  • CVE-2020-14311 — Ganzzahlüberlauf in grub_ext2_read_link, der zu einer Datenübertragung außerhalb des zugewiesenen Puffers führen kann;
  • CVE-2020-15705 — ermöglicht das Laden nicht signierter Kerne bei direktem Booten im Secure Boot-Modus ohne Shim-Schicht;
  • CVE-2020-15706 — Zugriff auf bereits freigegebenen Speicherbereich (use-after-free) während der Laufzeit bei Funktionsüberschreibung;
  • CVE-2020-15707 — Ganzzahlüberlauf im Handler für die Größe initrd.

Paketupdates mit Korrekturen wurden veröffentlicht für Debian, Ubuntu, RHEL und SUSE. Für GRUB2 vorgeschlagen ein Patchsatz.

Quelle: opennet.ru

60GB SSD 8Gb DDR4