Une faille critique de Rust constitue une menace d'exploitation dans des cas d'utilisation spécifiques de Windows

Une faille critique de Rust constitue une menace d'exploitation dans des cas d'utilisation spécifiques de Windows

Critical Rust Flaw Poses Exploit Threat in Specific Windows Use Cases PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Le projet Rust a publié une mise à jour pour sa bibliothèque standard, après qu'un chercheur en vulnérabilités a découvert qu'une fonction spécifique utilisée pour exécuter des fichiers batch sur les systèmes Windows pourrait être exploitée à l'aide d'une faille d'injection.

L'ensemble de fonctions communes incluses dans le langage de programmation Rust, connu sous le nom de bibliothèque standard, offre la possibilité, parmi ses nombreuses autres fonctionnalités, d'exécuter des fichiers batch Windows via l'API de commande. La fonction, cependant, n'a pas traité les entrées de l'API de manière suffisamment rigoureuse pour éliminer la possibilité d'injecter du code dans l'exécution, selon un avis du groupe de travail sur la réponse de sécurité Rust publié le 9 avril.

Bien que Rust soit bien connu pour ses fonctionnalités de sécurité de la mémoire, l'incident souligne que le langage de programmation n'est pas à l'abri des bogues logiques, explique Yair Mizrahi, chercheur principal en vulnérabilités au sein de la société de sécurité des applications JFrog.

« Dans l'ensemble, la sécurité de la mémoire de Rust constitue un avantage notable, mais les développeurs doivent également prêter une attention particulière au potentiel de bogues logiques afin de garantir la sécurité et la fiabilité globales de leurs applications basées sur Rust », explique-t-il. "Pour résoudre ces problèmes logiques, Rust encourage un processus rigoureux de tests et de révision du code, ainsi que l'utilisation d'outils d'analyse statique pour identifier et atténuer les bogues logiques."

Rust a acquis la réputation d'être un langage de programmation très sécurisé, car il ne laisse pas les applications ouvertes aux failles souvent graves connues sous le nom de vulnérabilités de sécurité de la mémoire. Google a attribué une baisse de code non sécurisé en mémoire au passage à des langages sécurisés en mémoire, tels que Rust et Kotlin, tandis que Microsoft a constaté que jusqu'en 2018, date à laquelle il est passé à un langage sécurisé en mémoire, de telles vulnérabilités étaient régulièrement détectées. représentaient 70 % de tous les problèmes de sécurité.

Windows pose de nombreux problèmes

Le dernier problème n'est pas une vulnérabilité de sécurité de la mémoire, mais un problème avec la logique utilisée pour traiter les entrées non fiables. Une partie de la bibliothèque standard de Rust permet au développeur d'appeler une fonction pour envoyer un fichier batch à la machine Windows pour traitement. Il existe des raisons de soumettre du code à l'hôte sous forme de fichier batch, explique Joel Marcey, directeur de la technologie à la Rust Foundation, qui prend en charge les responsables du langage de programmation et l'écosystème Rust.

« Les fichiers batch sont exécutés pour de nombreuses raisons sur les systèmes, et Rust fournit une API pour vous permettre de les exécuter assez facilement », explique-t-il. "Ainsi, même si ce n'est pas nécessairement le cas d'utilisation le plus courant de Rust, l'API, avant la mise en œuvre du correctif corrigé, permettait théoriquement à des acteurs malveillants de prendre le contrôle de votre système en exécutant des commandes arbitraires, et il s'agit certainement d'une vulnérabilité critique."

En règle générale, un développeur peut transférer une charge de travail vers l'hôte Windows pour qu'elle soit exécutée en tant que processus par lots via l'interface de programmation d'applications (API) Command, qui fait partie de la bibliothèque standard. Généralement, Rust garantit la sécurité de tout appel à l'API de commande, mais dans ce cas, le projet Rust n'a pas pu trouver de moyen d'empêcher l'exécution de tous les arguments, principalement parce que Windows n'adhère à aucune sorte de standard et que le L'API pourrait permettre à un attaquant de soumettre du code qui serait ensuite exécuté.

"Malheureusement, il a été signalé que notre logique d'échappement n'était pas suffisamment approfondie et qu'il était possible de transmettre des arguments malveillants qui entraîneraient une exécution arbitraire du shell", selon le Rust Security Response WG.

Le projet Rust s'avère réactif

Bien que gérer toute vulnérabilité puisse être un casse-tête, le projet Rust a montré que le groupe résout rapidement les problèmes, affirment les experts. La vulnérabilité de la bibliothèque standard, CVE-2024-24576, est en fin de compte un problème lié au traitement par lots de Windows et affecte d'autres langages de programmation, s'ils n'analysent pas correctement les arguments envoyés au processus par lots de Windows. Le projet Rust semble être le premier à proposer un correctif pour transmettre des arguments au processus Windows CMD.exe, explique Mizrahi de JFrog.

Les groupes n'ont pas pu éliminer complètement le problème, mais l'API de commande ne renverra pas d'erreur lorsque des augmentations transmises à la fonction pourraient être dangereuses, a indiqué le projet Rust. 

Mizrahi de JFrog exhorte Rust à élargir son utilisation des tests de sécurité des applications statiques et à étendre l'utilisation du fuzzing et des tests dynamiques.

"Dans l'ensemble, Rust est sur la bonne voie en mettant l'accent sur la sécurité de la mémoire et en encourageant des pratiques de tests rigoureuses", dit-il. "Combiner ces efforts avec les progrès continus de l'analyse statique et du fuzzing peut aider la communauté Rust et l'industrie du logiciel au sens large à faire des progrès significatifs dans la résolution des bogues logiques et des défauts de validation des entrées dans les années à venir."

Horodatage:

Plus de Lecture sombre