Brief IA : Microsoft détecte des bogues Rust stables avec son IA

Microsoft détecte des bogues Rust stables avec son IA

Brief IA
Tom Levy·4 min

Microsoft a découvert deux vulnérabilités dans la version stable de Rust, dont l'une, liée à process::exit, est présente depuis près de 11 ans. Bien que l'exploitation de ces failles soit jugée peu probable, des correctifs sont en cours d'examen pour renforcer la sécurité des outils de Microsoft, tels que Perception et Defender.

En bref
1Deux vulnérabilités découvertes concernent Rust stable, avec un correctif d'environnement en cours d'examen
2Un bogue lié à process::exit est présent depuis près de 11 ans, avec exploitation jugée peu probable
3La détection s'appuie sur Hyenas/MDASH et les résultats alimentent Microsoft Perception et Defender
Pourquoi c'est important : L'intégration des correctifs et des enseignements dans les outils de sécurité de Microsoft peut renforcer la détection et la remédiation des vulnérabilités dans des logiciels largement utilisés.

Des chercheurs de Microsoft ont mis au jour plusieurs failles dans la bibliothèque standard de Rust, dont deux affectent la version stable. L'une, liée à process::exit, serait présente depuis près de 11 ans. Les conditions d'exploitation sont jugées peu probables par Microsoft, tandis que des correctifs sont proposés et examinés. Les résultats alimentent aussi les outils de sécurité maison.

Deux failles touchent Rust stable, avec des correctifs en revue

Deux vulnérabilités découvertes par Microsoft concernent la version stable de Rust, notamment un problème pouvant entraîner un accès à de la mémoire libérée. Les failles impliquent les fonctions process::exit et CommandExt::exec. Pour le problème lié à la gestion des variables d'environnement, un correctif qui consiste à appeler directement execve afin d'éviter de modifier le tableau partagé était en cours d'examen lors de la publication. Deux autres problèmes signalés par l'équipe restaient ouverts, et d'autres correctifs étaient également à l'étude. Dans certains cas, des opérations concurrentes pouvaient amener le pointeur d'environnement à référencer de la mémoire libérée.

Risque jugé faible par Microsoft malgré des comportements indéfinis

Microsoft estime que le risque pratique posé par ces failles est limité. Selon l'entreprise, chaque vulnérabilité nécessite des conditions inhabituelles pour se manifester, et un bogue dans la bibliothèque standard ne devient sérieux que si un programme réel utilise l'API concernée de façon spécifique. Les chercheurs n'ont identifié aucun chemin d'exploitation fiable dans les scénarios étudiés et jugent l'exploitation pratique peu probable.

Une détection portée par Hyenas, dérivé de MDASH

L'analyse a été menée à l'aide de Hyenas, un système de détection de vulnérabilités basé sur l'IA développé par le FORGE Lab de Microsoft, qui constitue la version de recherche du système MDASH. Certains bogues ont été identifiés grâce à cet outil. Les chercheurs ont ensuite examiné le code, reproduit les problèmes, évalué leur impact sur la sécurité et transmis leurs conclusions aux mainteneurs de Rust.

Trois familles de failles et des exemples concrets dans la stdlib

Les vulnérabilités découvertes sont regroupées en trois catégories : du code non sécurisé supposant l'absence de panique, du code qui fait confiance à des implémentations fournies par l'utilisateur, et du code fondé sur des hypothèses incorrectes sur le système sous-jacent. Un exemple de la première catégorie concerne MapWindows::clone, qui allouait un tampon avant son initialisation complète et faisait appel à une opération de clonage fournie par l'utilisateur ; en cas de panique, le mécanisme de dé-roulement pouvait déclencher un destructeur accédant à de la mémoire non initialisée. Une modification a été soumise afin d’éviter la destruction d’un tampon qui n’aurait pas été entièrement initialisé. Concernant les API de chaînes, str::replace était susceptible, en version nightly, de reposer sur une hypothèse erronée à propos d’une implémentation personnalisée du trait Pattern, ce qui pouvait générer des séquences d’octets invalides au regard de l’UTF-8 et provoquer un comportement indéfini lors d’utilisations ultérieures. Les deux premières catégories de faiblesses avaient déjà fait l’objet d’une analyse en 2021 grâce à l’outil statique Rudra, et la prise en compte des problèmes de sécurité liés aux paniques avait débuté en 2015, même si des vulnérabilités du même type subsistent dans certaines versions.

Le brief IA que lisent les pros

Vous voulez les meilleurs outils IA avant les autres ?

On teste et on décrypte les nouveaux outils IA chaque soir, en 5 min. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisissez votre rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

Interactions système : process::exit et les variables d'environnement

Les failles de la troisième catégorie concernent les interactions entre Rust, les systèmes d'exploitation et les bibliothèques C. La fonction process::exit présente un défaut ancien : lorsqu'elle est appelée depuis un thread enfant, elle peut supprimer la pile de signaux alternative du thread principal encore actif. Si un débordement de pile survient ensuite, le signal peut ne pas être délivré correctement, provoquant une erreur de segmentation au lieu du traitement attendu. Les chercheurs estiment que ce bogue est présent dans la bibliothèque standard depuis près de 11 ans. Par ailleurs, CommandExt::exec pouvait modifier l'état partagé des variables d'environnement tout en maintenant un verrou de lecture, exposant d'autres threads à des données incohérentes.

Les enseignements alimentent Microsoft Perception et Defender

Microsoft prévoit d'utiliser ces résultats dans Microsoft Perception, un système de sécurité multi-agents, et d'enrichir le développement de MDASH, intégré à Microsoft Defender pour la découverte de vulnérabilités par agents. L'agent de test de pénétration des applications Web peut exploiter ces découvertes pour prioriser les essais, évaluer l'exploitabilité sur des applications en production et fournir des informations utiles à la remédiation. Les chercheurs indiquent viser l'identification de problèmes significatifs et l'amélioration de la sécurité des logiciels fondamentaux.

Suivez Brief IA

L'actu IA du jour, aussi dans votre fil.

Commentaires