CVE-2020-10713: “BootHole” GRUB2 Bootloader Arbitrary Code Execution Vulnerability
29 juli 2020
De onlangs gepubliceerde kwetsbaarheid in de GRUB2 bootloader, “BootHole” genaamd, zou een aanvaller in staat kunnen stellen om stilzwijgende kwaadwillige persistentie te krijgen door het GRUB2 configuratiebestand, grub.cfg, aan te vallen.
Achtergrond
Op 29 juli onthulden onderzoekers van Eclypsium een ernstige kwetsbaarheid in de GRand Unified Bootloader (GRUB) versie 2. Deze kreeg de naam “BootHole”. De fout heeft invloed op de GRUB2 bootloader in Windows en Linux systemen die Secure Boot gebruiken.
Analyse
CVE-2020-10713 is een buffer overflow kwetsbaarheid in GRUB2, een stuk software dat een besturingssysteem (OS) in het geheugen laadt wanneer een systeem opstart. De fout bestaat door de manier waarop GRUB2 een configuratiebestand, grub.cfg, parst. GRUB2 is de standaard bootloader voor Red Hat Enterprise Linux (RHEL) en vele andere *nix distributies.
Unified Extensible Firmware Interface (UEFI) Secure boot is een verificatiemechanisme om ervoor te zorgen dat de code die door de firmware wordt gelanceerd, wordt vertrouwd. Normaal gesproken verifieert Secure Boot de integriteit van een bestand door de handtekening te controleren aan de hand van bekende sleutels. De grub.cfg in de GRUB2 bootloader is echter niet ondertekend en wordt daarom niet gecontroleerd door Secure Boot. Door dit bestand specifiek te wijzigen, kan een aanvaller een vorm van persistente exploitatie voorbij het moment van opstarten krijgen, wat precies de bedoeling van Secure Boot is om te voorkomen.
Het is belangrijk om op te merken dat een succesvolle exploitatie van deze kwetsbaarheid vereist dat een aanvaller administrator of verhoogde rechten heeft, of lokale toegang tot een kwetsbaar apparaat, wat de impact van deze kwetsbaarheid beperkt.
Uitbreiding van een eerder GRUB onderzoek
BootHole is eigenlijk een uitbreiding van het onderzoek naar Secure Boot bypass dat eerder is uitgevoerd door Yuriy Bulygin en Alex Bazhaniuk, oprichters en CEO en CTO van Eclypsium, en beveiligingsonderzoeker Andrew Furtak.
Meer kwetsbaarheden blootgelegd door Canonical
Nadat Eclypsium BootHole aan meerdere leveranciers had onthuld, deed Canonical’s beveiligingsteam zelf onderzoek naar mogelijke nieuwe kwetsbaarheden in GRUB2 en ontdekte de volgende fouten:
CVE | Vulnerability Type | CVSSv3 Score (Severity) |
---|---|---|
CVE-2020-14308 | Buffer overflow | 6.4 (Medium) |
CVE-2020-14309 | Heap based overflow | 5.7 (Medium) |
CVE-2020-14310 | Heap based overflow | 5.7 (Medium) |
CVE-2020-14311 | Heap based overflow | 5.7 (Medium) |
CVE-2020-15705 | Unsigned kernel load | 6.4 (Medium) |
CVE-2020-15706 | Use-after-free | 6.4 (Medium) |
CVE-2020-15707 | Integer overflow | 5.7 (Medium) |
Een groter onderzoek werd uitgevoerd door meerdere beveiligingsteams van Oracle, Red Hat, Canonical, VMware en Debian, die verschillende extra kwetsbaarheden in de codebasis hebben geïdentificeerd die nog geen individuele CVE-nummers hebben ontvangen.
Getroffen vendoren
De volgende leveranciers zijn kwetsbaar door BootHole, en naarmate er nieuwe betrokken leveranciers worden geïdentificeerd, zal de lijst worden bijgewerkt op de adviespagina van Eclypsium:
Proof of Concept
Op het moment dat deze blogpost werd gepubliceerd, was er geen proof of concept code om de exploitatie tegen een doelwit aan te tonen. Het Eclypsium-team heeft echter scripts uitgebracht om beheerders te helpen bij het scannen en identificeren van certificaten die door verschillende OS-leveranciers zijn ingetrokken als onderdeel van de beveiligingsupdates voor CVE-2020-10713.
Oplossing
Eclypisum meldt dat het aanpakken van deze kwetsbaarheid een meerstappenproces inhoudt dat geen normale patch-style fix is. Dit proces omvat:
- Vendoren leveren updates voor GRUB2 om de bootloader te patchen en te beveiligen
- Microsoft’s 3rd party UEFI Certificate Authority zal updates nodig hebben voor hun certificaten
- Organisaties zullen hun getroffen hosts en ook hun potentiële backups moeten updaten.
Microsoft heeft een advies uitgebracht met instructies voor het toepassen van een niet-geteste patch op de Secure Boot DBX (de verboden handtekeningendatabase) om de kwetsbare modules die Microsoft heeft ingetrokken, op te nemen, waardoor deze modules niet kunnen worden geladen, zelfs niet als ze gecompromitteerd zijn. Windows hosts zijn alleen kwetsbaar als de Unified UEFI Certificate Authority (CA) van de host vertrouwen heeft in certificaten van derden.
Aangezien dit proces gecoördineerde inspanningen van meerdere leveranciers vereist, verwachten we dat patches in de loop van de tijd langzaam worden vrijgegeven en mogelijk niet onmiddellijk voor alle platforms beschikbaar zijn.
Kwetsbare systemen identificeren
Een lijst met Tenable plugins om deze kwetsbaarheid te identificeren zal hier verschijnen als ze worden vrijgegeven.