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 passer une commande à GRUB2 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 mises à jour publiées par les éditeurs de distribution Linux doivent être appliquées sur les machines utilisant GRUB2.
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
- Bulletin de sécurité GRUB du 02 mars 2021 https://lists.gnu.org/archive/html/grub-devel/2021-03/msg00007.html
- Bulletin de sécurité Microsoft du 04 mars 2021 https://msrc.microsoft.com/update-guide/vulnerability/ADV200011
- Bulletin de sécurité Red Hat du 02 mars 2021 https://access.redhat.com/security/vulnerabilities/RHSB-2021-003
- Bulletin de sécurité SUSE du 02 mars 2021 https://www.suse.com/support/kb/doc/?id=000019892
- Bulletin de sécurité Ubuntu du 02 mars 2021 https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/GRUB2SecureBootBypass2021
- Bulletin de sécurité VMware du 02 mars 2021 https://kb.vmware.com/s/article/82763
- Référence CVE CVE-2020-14372 https://www.cve.org/CVERecord?id=CVE-2020-14372
- Référence CVE CVE-2020-15705 https://www.cve.org/CVERecord?id=CVE-2020-15705
- Référence CVE CVE-2020-25632 https://www.cve.org/CVERecord?id=CVE-2020-25632
- Référence CVE CVE-2020-25647 https://www.cve.org/CVERecord?id=CVE-2020-25647
- Référence CVE CVE-2020-27749 https://www.cve.org/CVERecord?id=CVE-2020-27749
- Référence CVE CVE-2020-27779 https://www.cve.org/CVERecord?id=CVE-2020-27779
- Référence CVE CVE-2021-20225 https://www.cve.org/CVERecord?id=CVE-2021-20225
- Référence CVE CVE-2021-20233 https://www.cve.org/CVERecord?id=CVE-2021-20233
- Référence CVE CVE-2021-3418 https://www.cve.org/CVERecord?id=CVE-2021-3418