Un chercheur en sécurité a publié un autre exploit de preuve de concept (PoC) d’évasion de bac à sable qui permet d’exécuter du code non sécurisé sur un hôte exécutant le bac à sable VM2.

VM2 est un bac à sable JavaScript spécialisé utilisé par une large gamme d’outils logiciels pour exécuter et tester du code non approuvé dans un environnement isolé, empêchant le code d’accéder aux ressources système ou aux données externes de l’hôte.

La bibliothèque se trouve couramment dans les environnements de développement intégrés (IDE), les éditeurs de code, les outils de sécurité et divers frameworks de test d’intrusion. Il compte plusieurs millions de téléchargements par mois dans le référentiel de packages NPM.

Au cours des deux dernières semaines, VM2 a fait l’objet de plusieurs divulgations critiques d’échappement de bac à sable découvertes par différents chercheurs en sécurité, permettant aux attaquants d’exécuter du code malveillant en dehors des contraintes de l’environnement en bac à sable.

La première faille d’échappement de bac à sable identifiée comme CVE-2023-29017 a été découverte par Seongil Wi il y a deux semaines, les deux dernières (CVE-2023-29199 et CVE-2023-30547) ayant été découvertes par SeungHyun Lee.

Les chercheurs d’Oxeye ont découvert une autre évasion de bac à sable suivie sous le nom de CVE-2022-36067 en octobre 2022.

Faille d’échappement du bac à sable
La dernière vulnérabilité est identifiée comme CVE-2023-30547 (score CVSS : 9,8 – critique) et est une faille de nettoyage des exceptions permettant à un attaquant de déclencher une exception d’hôte non nettoyée dans « handleException() ».

Cette fonction est destinée à nettoyer les exceptions capturées dans le bac à sable pour empêcher la fuite d’informations sur l’hôte. Cependant, si un attaquant configure un gestionnaire de proxy personnalisé « getPrototypeOf() » qui lève une exception d’hôte non nettoyé, la fonction « handleException » ne parviendra pas à le nettoyer.

Cela aide l’attaquant à « accéder à la fonction hôte », c’est-à-dire à échapper aux restrictions du bac à sable et à exécuter du code arbitraire dans le contexte de l’hôte, ce qui permet des attaques potentiellement importantes.

La faille a été découverte par l’analyste en sécurité SeungHyun Lee du Korea Advanced Institute of Science and Technology (KAIST), qui a constaté qu’elle affectait toutes les versions de la bibliothèque à partir de la 3.9.16 et des versions antérieures.

Le chercheur a également publié un exploit de preuve de concept (PoC) sur son référentiel GitHub pour démontrer la faisabilité de l’attaque, qui crée un fichier nommé « pwned » sur l’hôte.

Il est recommandé à tous les utilisateurs, mainteneurs de packages et développeurs de logiciels dont les projets intègrent la bibliothèque VM2 de passer à la version 3.9.17, qui corrige la faille de sécurité, dès que possible.

Malheureusement, les complexités de la chaîne d’approvisionnement affectant la plupart des projets de logiciels open source pourraient retarder la mise à niveau de VM2 sur les outils concernés. Couplé à la disponibilité publique d’un PoC, de nombreux utilisateurs peuvent être exposés à des risques pendant une durée prolongée.

Il n’est pas clair si les deux failles d’échappement du bac à sable sont des vulnérabilités entièrement nouvelles ou si elles sont causées par des correctifs incomplets pour le bogue CVE-2023-29017 original découvert par Wi.

Breachtrace a posé des questions à Wi et Lee sur ces bogues et mettra à jour l’histoire si nous recevons une réponse.

Laisser un commentaire

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