Une nouvelle faille de sécurité, nom de code CVE-2024-24576 et surnommée « BatBadBut », a été découverte dans le langage de programmation Rust. Cette vulnérabilité affecte spécifiquement les utilisateurs Windows et présente un risque élevé avec un score maximal CVSS (Common Vulnerability Scoring System) de 10,0. RyotaK, chercheur en sécurité chez Flatt Security Inc., explique que la faille permet à un attaquant d’effectuer une injection de commandes sur des applications Windows qui dépendent de la fonction CreateProcess.
La faille exploite une gestion défaillante des arguments lors du lancement de fichiers batch sous Windows, ce qui permet aux attaquants d’exécuter des commandes shell arbitraires en contournant les mécanismes de sécurité prévus. Elle affecte toutes les versions de Rust antérieures à 1.77.2. Cette vulnérabilité est significative car elle concerne plusieurs langages de programmation et résulte de la manière dont ils utilisent la fonction CreateProcess de Windows.
RyotaK précise que l’exploitation de la faille est possible lorsque certaines conditions sont remplies, notamment l’exécution d’une commande sous Windows sans spécifier l’extension de fichier du fichier batch (.bat ou .cmd), la présence d’une entrée contrôlée par l’utilisateur dans les arguments de la commande, et l’incapacité du moteur d’exécution du langage de programmation à échapper correctement cmd.exe aux arguments de commande.
Face à cette menace, RyotaK recommande aux utilisateurs de déplacer les fichiers batch vers un répertoire non inclus dans la variable d’environnement PATH pour éviter leur exécution accidentelle. Il conseille également aux développeurs de spécifier l’extension de fichier lors de l’exécution de commandes sous Windows. Le CERT/CC, qui coordonne les réponses aux incidents de cybersécurité, souligne quant à lui l’importance d’être vigilant lors de l’exécution de commandes et recommande la mise à jour vers la version 1.77.2 de Rust pour se protéger contre cette vulnérabilité critique.
Il est essentiel de prendre des mesures préventives et d’atténuation pour contrer cette vulnérabilité et réduire les risques associés. En attendant que tous les langages de programmation résolvent ce problème, la prudence est de mise. La vigilance des développeurs lors de l’exécution de commandes sur les plates-formes Windows est également primordiale pour assurer la sécurité des utilisateurs.