
Nouvelle alerte du côté de Node.js : une faille de sécurité critique a été découverte dans la bibliothèque vm2, très utilisée par les mécanismes de sandbox. Voici l’essentiel à savoir à propos de cette vulnérabilité suivie sous la référence CVE-2026-26956.
Une évasion de sandbox
Avec plus de 1,3 million de téléchargements hebdomadaires sur NPM, la bibliothèque open-source vm2 est parmi les plus populaire. L’objectif de cette bibliothèque est de permettre d’exécuter, dans un environnement isolé (sandbox), du code JavaScript non approuvés (du code suspect, par exemple). Ainsi, elle est utilisée par des projets Node.js et des applications SaaS.
L’origine de cette faille réside dans une mauvaise gestion des exceptions qui transitent entre l’environnement isolé et l’hôte. Habituellement, vm2 s’appuie sur des protections opérant au niveau JavaScript pour bloquer les erreurs provenant de l’hôte et sécuriser les échanges.
L’exploitation de cette vulnérabilité se déroule en plusieurs étapes :
L’attaquant déclenche une erreur TypeError spécialement conçue grâce à une conversion “Symbol-to-string”.
Cette action fait fuiter un objet d’erreur côté hôte directement vers la sandbox, sans que vm2 ne le nettoie.
Puisque cet objet provient de l’environnement hôte, le pirate peut récupérer l’accès aux composants internes de Node.js (comme l’objet process).
Le pirate peut finalement exécuter les commandes de son choix sur le système de la victime.
Vous l’aurez compris, cette vulnérabilité permet de s’échapper de la sandbox et d’exécuter du code sur l’hôte.
Il existe cependant des prérequis techniques pour que l’exploitation fonctionne. Comme le précise l’avis de sécurité publié par le mainteneur, seuls les environnements Node.js25 qui ont activé la gestion des exceptions WebAssembly et la prise en charge JSTag. sont impactés. Ce même bulletin de sécurité contient d’ailleurs un code d’exploitation (PoC).
Comment se protéger de la CVE-2026-26956 ?
La faille CVE-2026-26956 affecte, à minima, la version 3.10.4 de vm2 (ce n’est pas à exclure que des versions antérieures soient aussi concernées). Donc, dans l’idéal, pour protéger votre application :
Mettez à niveau votre bibliothèque vm2 vers la version 3.10.5 ou ultérieure.
Mettez à niveau vers la branche la plus récente de la bibliothèque, qui est actuellement la 3.11.2.
Enfin, ce n’est pas la première fois qu’une faille critique dans vm2 permet de s’échapper de la sandbox. Cela me rappelle une série de vulnérabilités patchées en avril 2023 dans cette même bibliothèque.
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.
