BatBadBut : une faille critique de Rust expose les machines Windows à des attaques !

BatBadBut, c'est le nom d'une nouvelle faille de sécurité critique découverte dans la bibliothèque Rust ! Elle pourrait être exploitée par un attaquant pour exécuter des commandes sur les machines sous Windows ! Faisons le point.

Cette vulnérabilité associée à la référence CVE-2024-24576 est considérée comme critique : son score CVSS est de 10 sur 10, ce qui représente le niveau de sévérité maximal.

Pour autant, cette faille de sécurité peut être exploitée uniquement dans des scénarios spécifiques : "La bibliothèque standard Rust n'échappait pas correctement les arguments lors de l'invocation de fichiers batch (avec les extensions bat et cmd) sous Windows à l'aide de l'API Command", peut-on lire dans le bulletin de sécurité publié sur le site de Rust, le 9 avril 2024. Ceci explique que la vulnérabilité soit exploitable uniquement sur Windows.

Pour exploiter cette vulnérabilité, l'attaquant doit contrôler les arguments transmis au processus créé au moment de l'invocation du fichier batch pour exécuter les commandes shell arbitraires, en contournant le mécanisme d'échappement (escaping).

Le chercheur en sécurité RyotaK de chez Flatt Security a fait la découverte de cette vulnérabilité présente dans toutes les versions de Rust avant la version 1.77.2. Si vous utilisez Rust, vous devez donc effectuer la mise à jour vers 1.77.2 car cette version corrige cette faille de sécurité (voir cette page).

Rust ne serait pas le seul langage affecté par BatBadBut

RyotaK a surnommé cette vulnérabilité BatBadBut, et d'après lui, Rust n'est pas le seul langage de programmation affecté : tout dépend de comment est géré la fonction CreateProcess de Windows.

"CreateProcess() crée implicitement cmd.exe lors de l'exécution de fichiers batch (.bat, .cmd, etc.), même si l'application ne les a pas spécifiés dans la ligne de commande. Le problème est que cmd.exe a des règles de parsing compliquées pour les arguments de la commande, et que les exécutions des langages de programmation ne parviennent pas à échapper correctement les arguments de la commande.", précise-t-il dans un rapport publié sur le site de Flatt Security.

Pour le moment, tous les langages de programmation affectés n'ont pas résolu le problème, et il y a un travail à réaliser également du côté développement pour mieux gérer l'échappement.

  • Voici un tableau récapitulatif publié par RyotaK :

Si vous êtes développeur, le rapport de RyotaK pourra vous apporter des détails techniques intéressants, notamment pour améliorer votre code afin de gérer ce problème de sécurité.

Source

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5581.Voir tous les posts

2 thoughts on “BatBadBut : une faille critique de Rust expose les machines Windows à des attaques !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.