Faille critique corrigée dans le bac à sable JavaScript populaire utilisé dans les projets d’IA

Lucas Morel

La vulnérabilité de confusion de types permet une évasion du sandbox de l’invité vers l’hôte, ce qui peut conduire à l’exécution de code à distance.

Une vulnérabilité critique d’échappement au bac à sable a été découverte et corrigée dans isolated-vm, une bibliothèque permettant d’exécuter du code JavaScript dans un processus isolé. Si elle est exploitée, la vulnérabilité pourrait permettre à des attaquants de détourner le flux de contrôle de l’hôte, ce qui pourrait permettre l’exécution de code à distance.

Insulated-vm est téléchargé plus d’un million de fois par semaine et est également utilisé comme composant direct ou facultatif dans d’autres projets, notamment des frameworks d’automatisation d’agents IA open source tels que n8n, Sim.ai, Mastra et Activepieces. Son objectif est d’exécuter du code JavaScript non fiable fourni par l’utilisateur dans un bac à sable créé avec la fonctionnalité Isolate de V8, le moteur JavaScript de Chrome et Node.js.

« L’exécution sécurisée de JavaScript non fiable est l’un des problèmes les plus difficiles de l’écosystème Node.js, et son histoire est semée d’échecs », a déclaré Cris Staicu, chercheur principal de la société appsec Edor Labs, qui a découvert la vulnérabilité. « Vm2, la réponse par défaut pendant des années, a accumulé plus de vingt évasions documentées avant d’être obsolète. »

Mais isolated-vm adopte une approche architecturale différente et s’appuie sur Isolate de V8, la même primitive que Google Chrome utilise pour isoler le code exécuté dans différents onglets du navigateur. Il s’agit d’un mécanisme solide et bien testé, essentiel à la sécurité du navigateur.

Mais cette vulnérabilité, qu’Endor Labs décrit comme une confusion de types, se trouvait dans le code C++ de la bibliothèque qui transporte les données dans la V8, et non dans le mécanisme d’isolation lui-même.

« Un élément de construction parfaitement sain a été miné par la couche de liaison qui l’entourait », a déclaré Staicu. « Alors que les agents d’IA et les plates-formes d’automatisation font de l’exécution de code non fiable une exigence générale, la couche de liaison autour de votre bac à sable mérite une attention de sécurité de premier ordre. »

Les développeurs de machines virtuelles isolées ont rapidement corrigé la vulnérabilité dans les versions 7.0.1 et 6.2.0, publiées plus tôt ce mois-ci. Cependant, l’avis de sécurité ainsi que les détails de la faille ont été rendus publics aujourd’hui.

JavascriptVulnérabilitésSécuritéDéveloppement de logiciels