Une vulnérabilité critique dans le chargeur de démarrage Linux Shim permet aux attaquants d’exécuter du code et de prendre le contrôle d’un système cible avant le chargement du noyau, contournant les mécanismes de sécurité existants.
Shim est un petit chargeur de démarrage open source géré par Red Hat qui est conçu pour faciliter le processus de démarrage sécurisé sur les ordinateurs utilisant une Interface de micrologiciel extensible unifiée (UEFI).
L’outil est signé avec une clé Microsoft acceptée par défaut sur la plupart des cartes mères UEFI qui est utilisée pour vérifier l’étape suivante du processus de démarrage, généralement le chargement du chargeur de démarrage GRUB2.
Shim a été créé par nécessité pour permettre aux projets open source tels que les distributions Linux de bénéficier des avantages du démarrage sécurisé, tels que la prévention de l’exécution de code non autorisé ou malveillant pendant le démarrage, tout en conservant le contrôle du matériel.
La nouvelle faille Shim, identifiée sous le numéro CVE-2023-40547, a été découverte par le chercheur en sécurité de Microsoft Bill Demirkapi, qui l’a révélée pour la première fois le 24 janvier 2024.
Le bogue réside dans le httpboot.source c pour Shim, qui est utilisée pour démarrer une image réseau via HTTP.
« Lors de la récupération de fichiers via HTTP ou des protocoles associés, shim tente d’allouer un tampon pour stocker les données reçues », lit le commit pour corriger le bogue dans httpboot.c.
« Malheureusement, cela signifie obtenir la taille d’un en-tête HTTP, qui peut être manipulé pour spécifier une taille plus petite que les données reçues. »
« Dans ce cas, le code utilise accidentellement l’en-tête pour l’allocation mais les métadonnées du protocole pour le copier à partir du tampon rx, ce qui entraîne une écriture hors limites. »
Plus de détails sur la faille sont devenus disponibles le 2 février 2024, Eclypsium publiant hier un rapport pour attirer l’attention sur ce problème de sécurité.
La vulnérabilité réside dans l’analyse des réponses HTTP par Shim, permettant à un attaquant de créer des requêtes HTTP spécialement conçues pour provoquer une écriture hors limites.
Cela pourrait permettre à un attaquant de compromettre un système en exécutant du code privilégié avant le chargement du système d’exploitation, contournant efficacement les mécanismes de sécurité mis en œuvre par le noyau et le système d’exploitation.
Eclypsium indique que plusieurs chemins d’exploitation potentiels peuvent exploiter CVE-2023-40547, y compris les points d’attaque locaux, adjacents au réseau et distants. Le rapport du cabinet met en évidence les trois méthodes suivantes:
Un attaquant distant peut exécuter une attaque de l’homme du milieu (MiTM), interceptant le trafic HTTP pour le démarrage HTTP, potentiellement à partir de n’importe quelle position du réseau entre la victime et le serveur.
Un attaquant local disposant de privilèges suffisants peut modifier les variables EFI ou la partition EFI à l’aide d’une clé USB Linux en direct pour modifier l’ordre de démarrage et charger un shim compromis, exécutant du code privilégié sans désactiver le démarrage sécurisé.
Un attaquant sur le même réseau peut utiliser PXE pour charger un chargeur de démarrage shim compromis, exploitant la vulnérabilité.
Impact et correctifs
RedHat a publié un commit de code pour corriger CVE-2023-40547 le 5 décembre 2023, mais les distributions Linux prenant en charge le démarrage sécurisé et utilisant Shim doivent pousser leurs propres correctifs.
Les distributions Linux qui utilisent Shim, telles que Red Hat, Debian, Ubuntu et SUSE, ont publié des avis contenant des informations sur la faille.
Il est conseillé aux utilisateurs de Linux de mettre à jour vers la dernière version de Shim, v15.8, qui contient un correctif pour CVE-2023-40547 et cinq autres vulnérabilités importantes.
Eclypsium explique que les utilisateurs de Linux doivent également mettre à jour le DBX de démarrage sécurisé UEFI (liste de révocation) pour inclure les hachages du logiciel Shim vulnérable et signer la version corrigée avec une clé Microsoft valide.
Pour ce faire, effectuez d’abord la mise à niveau vers Shim 15.8, puis appliquez la mise à jour DBX à l’aide de la commande ‘fwupdmgr update’ (nécessite fwupd).
Certaines distributions Linux offrent un outil graphique pour effectuer cette mise à jour, alors assurez-vous de vérifier votre gestionnaire de paquets avant de vous plonger dans le terminal.
Bien qu’il soit peu probable qu’il soit exploité en masse, CVE-2023-40547 n’est pas un bogue à ignorer, car l’exécution de code avant le démarrage du système d’exploitation est l’une des formes de compromission du système les plus puissantes et les plus furtives.