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.
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.
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.
New GRUB vulnerability: https://t.co/sQAmq5a3ip
— Alex Bazhaniuk (@ABazhaniuk) July 29, 2020
A new iteration on our 2013 secure boot bypass (https://t.co/MYtjlful2R): In addition to implementation flaws, this overflow in GRUB2 affects almost every UEFI Secure Boot system and shows a systemic issue that is very hard to fix. pic.twitter.com/ioaJQN4O4M
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.
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:
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.
Eclypisum meldt dat het aanpakken van deze kwetsbaarheid een meerstappenproces inhoudt dat geen normale patch-style fix is. Dit proces omvat:
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.
Een lijst met Tenable plugins om deze kwetsbaarheid te identificeren zal hier verschijnen als ze worden vrijgegeven.
Cookie | Duration | Description |
---|---|---|
_GRECAPTCHA | 5 months 27 days | This cookie is set by Google. In addition to certain standard Google cookies, reCAPTCHA sets a necessary cookie (_GRECAPTCHA) when executed for the purpose of providing its risk analysis. |
cookielawinfo-checkbox-advertisement | 1 year | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement". |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Duration | Description |
---|---|---|
bcookie | 2 years | This cookie is set by linkedIn. The purpose of the cookie is to enable LinkedIn functionalities on the page. |
lang | session | This cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website. |
lidc | 1 day | This cookie is set by LinkedIn and used for routing. |
Cookie | Duration | Description |
---|---|---|
YSC | session | This cookies is set by Youtube and is used to track the views of embedded videos. |
Cookie | Duration | Description |
---|---|---|
_ga | 2 years | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_gat_gtag_UA_116473530_1 | 1 minute | This cookie is set by Google and is used to distinguish users. |
_gat_UA-116473530-1 | 1 minute | This is a pattern type cookie set by Google Analytics, where the pattern element on the name contains the unique identity number of the account or website it relates to. It appears to be a variation of the _gat cookie which is used to limit the amount of data recorded by Google on high traffic volume websites. |
_gid | 1 day | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form. |
Cookie | Duration | Description |
---|---|---|
bscookie | 2 years | This cookie is a browser ID cookie set by Linked share Buttons and ad tags. |
IDE | 1 year 24 days | Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile. |
prism_476809757 | 1 month | Used by ActiveCampaign to track usage of newsletters |
test_cookie | 15 minutes | This cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies. |
VISITOR_INFO1_LIVE | 5 months 27 days | This cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
Cookie | Duration | Description |
---|---|---|
AnalyticsSyncHistory | 1 month | No description |
CONSENT | 16 years 7 months 5 days 13 hours | No description |
li_gc | 2 years | No description |
UserMatchHistory | 1 month | Linkedin - Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. |