Le chargeur GRUB2 a corrigé 7 vulnérabilités permettant de contourner le mécanisme UEFI Secure Boot et d'exécuter du code non vérifié, comme l'injection de logiciels malveillants fonctionnant au niveau du chargeur ou du noyau. De plus, une vulnérabilité dans la couche shim a également été signalée, permettant de contourner UEFI Secure Boot. Ce groupe de vulnérabilités a été baptisé Boothole 3, sur le modÚle de problÚmes similaires précédemment identifiés dans le chargeur.
Pour rĂ©soudre les problĂšmes dans GRUB2 et shim, les distributions pourront utiliser le mĂ©canisme SBAT (UEFI Secure Boot Advanced Targeting), dont le support est mis en Ćuvre pour GRUB2, shim et fwupd. SBAT a Ă©tĂ© dĂ©veloppĂ© en collaboration avec Microsoft et implique l'ajout de mĂ©tadonnĂ©es supplĂ©mentaires aux fichiers exĂ©cutables des composants UEFI, incluant des informations sur le fabricant, le produit, le composant et la version. Ces mĂ©tadonnĂ©es sont signĂ©es numĂ©riquement et peuvent ĂȘtre incluses sĂ©parĂ©ment dans les listes de composants autorisĂ©s ou interdits pour UEFI Secure Boot.
Dans la plupart des distributions Linux, une petite couche shim, signée numériquement par Microsoft, est utilisée pour l'amorçage vérifié en mode UEFI Secure Boot. Cette couche vérifie GRUB2 avec son propre certificat, ce qui permet aux développeurs de distributions de ne pas signer chaque mise à jour du noyau et de GRUB chez Microsoft. Les vulnérabilités dans GRUB2 permettent d'atteindre l'exécution de son code à un stade aprÚs la vérification réussie de shim, mais avant le chargement du systÚme d'exploitation, en s'infiltrant dans la chaßne de confiance en mode Secure Boot actif et en obtenant un contrÎle total sur le processus de démarrage ultérieur, y compris le chargement d'un autre systÚme d'exploitation, la modification des composants du systÚme d'exploitation et le contournement de la protection Lockdown.
Pour corriger les problÚmes dans le chargeur, les distributions devront former de nouvelles signatures numériques internes et mettre à jour les installateurs, les chargeurs de démarrage, les paquets de noyau, les mises à jour fwupd et la couche shim. Avant l'implémentation de SBAT, la mise à jour de la liste des certificats révoqués (dbx, UEFI Revocation List) était une condition sine qua non pour bloquer entiÚrement la vulnérabilité, car un attaquant, quel que soit le systÚme d'exploitation utilisé, pouvait compromettre UEFI Secure Boot en utilisant un support de démarrage avec une ancienne version vulnérable de GRUB2, signée numériquement.
Au lieu de révoquer la signature, SBAT permet de bloquer son utilisation pour des numéros de version spécifiques des composants sans avoir besoin de révoquer des clés pour Secure Boot. Le blocage des vulnérabilités via SBAT ne nécessite pas l'utilisation de la liste des certificats révoqués UEFI (dbx), mais s'effectue au niveau du remplacement de la clé interne pour la formation des signatures et la mise à jour de GRUB2, shim et d'autres artefacts de démarrage fournis par les distributions. Actuellement, le support de SBAT a déjà été ajouté dans la plupart des distributions Linux populaires.
Vulnérabilités identifiées :
- CVE-2021-3696, CVE-2021-3695 - dĂ©bordement de tampon dans le tas lors du traitement d'images PNG spĂ©cialement conçues, ce qui pourrait thĂ©oriquement ĂȘtre exploitĂ© pour exĂ©cuter du code malveillant et contourner UEFI Secure Boot. Il est notĂ© que le problĂšme est difficile Ă exploiter, car la crĂ©ation d'un exploit fonctionnel nĂ©cessite la prise en compte d'un grand nombre de facteurs et des informations sur la disposition de la mĂ©moire.
- CVE-2021-3697 - débordement par sous-flot de tampon dans le code de traitement des images JPEG. L'exploitation du problÚme nécessite des informations sur la disposition de la mémoire et est d'une complexité comparable à celle du problÚme avec PNG (CVSS 7.5).
- CVE-2022-28733 - débordement entier dans la fonction grub_net_recv_ip4_packets(), permettant de modifier le paramÚtre rsm->total_len en envoyant un paquet IP spécialement conçu. Le problÚme est signalé comme étant le plus dangereux parmi les vulnérabilités présentées (CVSS 8.1). Une exploitation réussie permet d'écrire des données en dehors du tampon en allouant de la mémoire de taille délibérément inférieure.
- CVE-2022-28734 - dĂ©bordement de tampon un octet lors du traitement d'en-tĂȘtes HTTP sĂ©parĂ©s. Le problĂšme peut entraĂźner la corruption des mĂ©tadonnĂ©es GRUB2 (Ă©criture d'un octet nul immĂ©diatement aprĂšs la fin du tampon) lors de l'analyse de requĂȘtes HTTP spĂ©cialement conçues.
- CVE-2022-28735 - problĂšme dans le vĂ©rificateur shim_lock, permettant de charger des fichiers non relatifs au noyau. La vulnĂ©rabilitĂ© peut ĂȘtre utilisĂ©e pour charger dans un mode UEFI Secure Boot des modules de noyau non signĂ©s ou du code non vĂ©rifiĂ©.
- CVE-2022-28736 - accÚs à une zone mémoire déjà libérée dans la fonction grub_cmd_chainloader() lors de l'exécution répétée de la commande chainloader, utilisée pour charger des systÚmes d'exploitation non pris en charge dans GRUB2. L'exploitation peut conduire à l'exécution de code malveillant si un attaquant parvient à déterminer les caractéristiques de la répartition mémoire dans GRUB2.
- CVE-2022-28737 - débordement de tampon dans le layer shim, survenant dans la fonction handle_image() lors du chargement et de l'exécution d'images EFI spécialement conçues.
Source : opennet.ru
