Risque
- Exécution de code arbitraire
Systèmes affectés
- Toute machine configurée avec Secure Boot pour sécuriser la séquence de démarrage de son système d'exploitation
Résumé
GRUB2 est le bootloader le plus couramment utilisé par les distributions Linux pour démarrer le système d'exploitation.
De multiples vulnérabilités ont été découvertes dans GRUB2. Elles permettent à un attaquant, ayant la possibilité de modifier le fichier de configuration grub.cfg ou de manipuler d'autres ressources utilisées par GRUB2, de provoquer une exécution de code arbitraire.
Pour y parvenir, l'attaquant doit avoir les droits administrateurs ou avoir un accès physique à un équipement afin de manipuler la séquence de démarrage (via un support amovible ou via la modification du disque de boot de la machine). Ces méthodes permettent donc de compromettre une machine même si celle-ci n'a pas Linux d'installé à l'origine.
En agissant ainsi sur une machine configurée avec Secure Boot, l'attaquant est alors en capacité de rompre la chaîne de confiance et de déployer du code malveillant pour compromettre la machine de façon persistante sans être détecté.
Solution
Les machines utilisant GRUB2 doivent appliquer les mises à jour publiées par les éditeurs de distribution Linux.
Afin de rétablir la chaîne de confiance Secure Boot, toutes les machines configurées avec Secure Boot devront être mises à jour pour interdire l'utilisation des versions GRUB2 vulnérables. Cette étape consiste à actualiser les fichiers DB et DBX qui référencent respectivement les bootloaders de confiance et les bootloaders révoqués par Secure Boot :
- soit en appliquant les mesures préconisées par Microsoft pour les machines installées avec un système d'exploitation Windows
- soit en appliquant les mesures préconisées par l'éditeur de la distribution Linux lorsque celui propose une mise à jour de Secure Boot
- soit en appliquant une mise à jour de BIOS publiée par le constructeur de l'équipement
Cette mise à jour de DBX doit donc être réalisée après avoir mis à jour GRUB2 sur les machines pour ne pas risque un blocage au moment du démarrage.
Le CERT-FR recommande donc fortement de se référer aux différentes publications des éditeurs disponibles à ce jour (cf. références documentaires) afin de déterminer le plan d'actions adapté à chaque configuration.
Documentation
- Avis de sécurité Debian du 30 juillet 2020 https://www.debian.org/security/2020-GRUB-UEFI-SecureBoot/
- Avis de sécurité HP du 27 juillet 2020 https://support.hp.com/us-en/document/c06707446
- Avis de sécurité HPE du 29 juillet 2020 https://techhub.hpe.com/eginfolib/securityalerts/Boot_Hole/boot_hole.html
- Avis de sécurité Microsoft du 29 juillet 2020 https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV200011
- Avis de sécurité Red Hat du 29 juillet 2020 https://access.redhat.com/security/vulnerabilities/grub2bootloader
- Avis de sécurité SUSE du 29 juillet 2020 https://www.suse.com/support/kb/doc/?id=000019673
- Avis de sécurité Ubuntu du 30 juillet 2020 https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/GRUB2SecureBootBypass
- Avis de sécurité VMware du 29 juillet 2020 https://kb.vmware.com/s/article/80181
- Publication de la société Eclypsium du 29 juillet 2020 https://eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/
- Référence CVE CVE-2020-10713 https://www.cve.org/CVERecord?id=CVE-2020-10713
- Référence CVE CVE-2020-14308 https://www.cve.org/CVERecord?id=CVE-2020-14308
- Référence CVE CVE-2020-14309 https://www.cve.org/CVERecord?id=CVE-2020-14309
- Référence CVE CVE-2020-14310 https://www.cve.org/CVERecord?id=CVE-2020-14310
- Référence CVE CVE-2020-14311 https://www.cve.org/CVERecord?id=CVE-2020-14311
- Référence CVE CVE-2020-15705 https://www.cve.org/CVERecord?id=CVE-2020-15705
- Référence CVE CVE-2020-15706 https://www.cve.org/CVERecord?id=CVE-2020-15706
- Référence CVE CVE-2020-15707 https://www.cve.org/CVERecord?id=CVE-2020-15707