Vulnérabilités dans GRUB2 pouvant contourner le démarrage sécurisé UEFI

2 vulnérabilités ont été corrigées dans le chargeur de démarrage GRUB7 qui permettent de contourner le mécanisme de démarrage sécurisé UEFI et de permettre l'exécution de code non vérifié, par exemple en injectant des logiciels malveillants qui fonctionnent au niveau du chargeur de démarrage ou du noyau. De plus, il existe une vulnérabilité dans la couche de calage, qui vous permet également de contourner le démarrage sécurisé UEFI. Le groupe de vulnérabilités portait le nom de code Boothole 3, similaire à des problèmes similaires précédemment identifiés dans le chargeur de démarrage.

Pour résoudre les problèmes dans GRUB2 et shim, les distributions pourront utiliser le mécanisme SBAT (UEFI Secure Boot Advanced Targeting), qui est pris en charge 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 du composant UEFI, qui incluent des informations sur le fabricant, le produit, le composant et la version. Les métadonnées spécifiées sont signées numériquement et peuvent être incluses séparément dans les listes de composants autorisés ou interdits pour le démarrage sécurisé UEFI.

La plupart des distributions Linux utilisent une petite couche de calage, signée numériquement par Microsoft, pour un démarrage vérifié en mode UEFI Secure Boot. Cette couche vérifie GRUB2 avec son propre certificat, ce qui permet aux développeurs de distribution de ne pas certifier chaque mise à jour du noyau et de GRUB auprès de Microsoft. Les vulnérabilités de GRUB2 vous permettent d'exécuter votre code après une vérification réussie de shim, mais avant de charger le système d'exploitation, de vous insérer dans la chaîne de confiance avec le mode de démarrage sécurisé actif et d'obtenir un contrôle total sur la suite du processus de démarrage, y compris le démarrage d'un autre. Système d'exploitation, modification des composants du système d'exploitation et contournement de la protection par verrouillage.

Pour résoudre les problèmes du chargeur de démarrage, les distributions devront créer de nouvelles signatures numériques internes et mettre à jour les installateurs, les chargeurs de démarrage, les packages du noyau, le fwupd-firmware et le shim-layer. Avant l'introduction de SBAT, la mise à jour de la liste des certificats révoqués (dbx, UEFI Revocation List) était une condition préalable pour bloquer complètement la vulnérabilité, puisqu'un attaquant, quel que soit le système d'exploitation utilisé, pouvait utiliser un support de démarrage avec une ancienne version vulnérable de GRUB2. certifié par une signature numérique pour compromettre le démarrage sécurisé UEFI.

Au lieu de révoquer la signature, SBAT vous permet de bloquer son utilisation pour des numéros de version de composants individuels sans avoir besoin de révoquer les clés pour le démarrage sécurisé. Le blocage des vulnérabilités via SBAT ne nécessite pas l'utilisation d'une CRL UEFI (dbx), mais s'effectue au niveau du remplacement de la clé interne pour générer des signatures et mettre à jour GRUB2, shim et autres artefacts de démarrage fournis par les distributions. La prise en charge SBAT a désormais été ajoutée aux distributions Linux les plus populaires.

Vulnérabilités identifiées :

  • CVE-2021-3696, CVE-2021-3695 - Débordements de tampon de tas lors du traitement d'images PNG spécialement conçues, qui peuvent théoriquement être utilisées pour organiser l'exécution de code attaquant et contourner le démarrage sécurisé UEFI. Il est à noter 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 la disponibilité d'informations sur la disposition de la mémoire.
  • CVE-2021-3697 - Dépassement de tampon dans le code de traitement d'image JPEG. L'exploitation du problème nécessite une connaissance de la disposition de la mémoire et se situe à peu près au même niveau de complexité que le problème PNG (CVSS 7.5).
  • CVE-2022-28733 - Un dépassement d'entier dans la fonction grub_net_recv_ip4_packets() qui permet d'influencer le paramètre rsm->total_len en envoyant un paquet IP spécialement conçu. Le problème est marqué comme la plus dangereuse des vulnérabilités présentées (CVSS 8.1). Si elle est exploitée avec succès, la vulnérabilité permet aux données d'être écrites en dehors des limites de la mémoire tampon en allouant une taille de mémoire délibérément plus petite.
  • CVE-2022-28734 – Dépassement de tampon d’un octet lors du traitement des en-têtes HTTP fractionnés. Le problème peut entraîner la corruption des métadonnées GRUB2 (écrire un octet nul juste après la fin du tampon) lors de l'analyse de requêtes HTTP spécialement conçues.
  • CVE-2022-28735 - Un problème dans le vérificateur shim_lock qui permet de charger des fichiers non-noyau. La vulnérabilité pourrait être exploitée pour démarrer des modules de noyau non signés ou du code non vérifié en mode de démarrage sécurisé UEFI.
  • CVE-2022-28736 - Accès à une zone mémoire déjà libérée dans la fonction grub_cmd_chainloader() en réexécutant la commande chainloader utilisée pour charger les systèmes d'exploitation non pris en charge par GRUB2. L'exploitation peut conduire à l'exécution du code d'un attaquant si celui-ci est capable de déterminer les spécificités de l'allocation de mémoire dans GRUB2.
  • CVE-2022-28737 - Débordement de tampon dans la couche de calage dans la fonction handle_image() lors du chargement et de l'exécution d'images EFI personnalisées.

Source: opennet.ru

Ajouter un commentaire