La faille CVE-2024-24576 obtient le score CVSS maximal de 10,0.
Nom de code : CVE-2024-24576. Localisation : dans Rust. Cible : les utilisateurs Windows. Score CVSS : 10,0. Surnom donné par son dénicheur : « BatBadBut ». C'est en effet le chercheur en sécurité pour la société Flatt Security Inc., RyotaK, qui l'a découverte.
« BatBadBut est une vulnérabilité qui permet à un attaquant d'effectuer une injection de commandes sur des applications Windows qui dépendent indirectement de la CreateProcessfonction lorsque les conditions spécifiques sont remplies », explique-t-il.
Affectant spécifiquement les utilisateurs Windows, cette faille présente un risque élevé, puisqu'elle affiche un score de gravité de 10,0 sur l'échelle CVSS, le Common Vulnerability Scoring System, le système de notation standardisé des vulnérabilités. Pour rappel, au-delà de 7, elles passent d'un niveau de sévérité « moyen » à « important ».
21 novembre 2024 à 11h06
Comment fonctionne BatBadBut
BatBadBut résulte d'une gestion défaillante des arguments lors du lancement de fichiers batch sous Windows. Cette vulnérabilité permet aux attaquants d'exécuter des commandes shell arbitraires, contournant ainsi les mécanismes de sécurité prévus. Le groupe de travail Rust Security Response a publié un avis le 9 avril 2024, alertant la communauté quant aux risques associés à cette faille.
La vulnérabilité affecte toutes les versions de Rust antérieures à 1.77.2. Elle a été découverte par RyotaK et signalée au CERT/CC, qui coordonne les réponses aux incidents de cybersécurité. L'impact de cette faille est significatif, car elle concerne plusieurs langages de programmation et découle de la manière dont ils utilisent la fonction CreateProcess de Windows. Les langages de programmation manquent souvent de mécanismes de validation robustes pour l'exécution de commandes, ce qui ouvre la porte à des exploitations malveillantes.
Toutefois, RyotaK tempère. « L'exploitation de ces comportements est possible lorsque les conditions suivantes sont remplies : l'application exécute une commande sous Windows , l'application ne spécifie pas l'extension de fichier de la commande, ou l'extension de fichier est .batou.cmd, la commande en cours d'exécution contient une entrée contrôlée par l'utilisateur dans le cadre des arguments de la commande, et le moteur d'exécution du langage de programmation ne parvient pas à échapper cmd.exe correctement aux arguments de commande 2 », détaille-t-il.
Les recommandations de RyotaK et du CERT-CC
Face à la menace que représente la vulnérabilité BatBadBut, des mesures de prévention et d'atténuation sont essentielles. RyotaK se met à la place des utilisateurs potentiellement touchés et recommande de déplacer les fichiers batch vers un répertoire non inclus dans la variable d'environnement PATH pour éviter leur exécution accidentelle. Cette approche nécessite la spécification du chemin complet pour l'exécution des fichiers batch, réduisant ainsi le risque d'exploitation. Il conseille également aux développeurs une approche spécifique. « En tant que développeurs qui exécutez des commandes sous Windows, mais ne souhaitez pas exécuter de fichiers batch, vous devez toujours spécifier l'extension de fichier de la commande. »
Le CERT/CC souligne l'importance pour les développeurs d'être vigilants lors de l'exécution de commandes sur les plates-formes Windows. En attendant que tous les langages de programmation résolvent ce problème, la prudence est de mise. La mise à jour vers la version 1.77.2 de Rust est également recommandée pour les utilisateurs affectés, afin de se protéger contre cette vulnérabilité critique.
Et si vous vous demandez ce que signifie ce nom à coucher dehors BatBadBut, Ryotak explique qu'en grand fan de jeux de mots, il l'a baptisée ainsi parce cette faille concerne les fichiers Batch et les mauvais (Bad en anglais), mais (But en anglais) pas le pire. Logique, mais mignon.
Sources : Cy Security News, Flatt Security, Rust, CERT-CC