Des vulnérabilités critiques exposent la librairie Node.js vm2 à des attaques d'évasion de bac à sable
Une série de vulnérabilités critiques ont été découvertes dans la librairie Node.js **vm2**, permettant potentiellement aux attaquants de s'échapper du bac à sable et d'exécuter du code arbitraire. Ces failles soulignent les défis inhérents à l'isolation sécurisée du code JavaScript non fiable.

**vm2** est une librairie open-source conçue pour exécuter du code JavaScript non fiable au sein d'un environnement de bac à sable sécurisé. Elle y parvient en interceptant et en proxyant les objets JavaScript, dans le but d'empêcher le code confiné d'accéder au système hôte.
## Détails des vulnérabilités
Douze vulnérabilités de sécurité critiques ont été divulguées. Toutes ces vulnérabilités pourraient être exploitées par des acteurs malveillants pour obtenir un accès non autorisé et un contrôle sur le système sous-jacent.
Voici une répartition des failles identifiées :
* **CVE-2026-24118** (score CVSS : 9.8) : Évasion du bac à sable via `__lookupGetter__` permettant l'exécution de code arbitraire sur l'hôte. Affecte les versions <= 3.10.4, corrigé dans la version 3.11.0.
* **CVE-2026-24120** (score CVSS : 9.8) : Contournement de la CVE-2023-37466, permettant l'évasion du bac à sable via la propriété `species` des objets `promise`. Affecte les versions <= 3.10.3, corrigé dans la version 3.10.5.
* **CVE-2026-24781** (score CVSS : 9.8) : Évasion du bac à sable via la fonction "inspect" menant à l'exécution de code arbitraire. Affecte les versions <= 3.10.3, corrigé dans la version 3.11.0.
* **CVE-2026-26332** (score CVSS : 9.8) : Évasion du bac à sable via "SuppressedError" permettant l'exécution de code arbitraire. Affecte les versions <= 3.10.4, corrigé dans la version 3.11.0.
* **CVE-2026-26956** (score CVSS : 9.8) : Échec du mécanisme de protection menant à l'évasion du bac à sable avec exécution de code arbitraire en déclenchant une `TypeError` produite par la coercition de `Symbol` en chaîne. Affecte la version 3.10.4, corrigé dans la version 3.10.5.
* **CVE-2026-43997** (score CVSS : 10.0) : L'injection de code permet d'obtenir l'objet hôte et de s'échapper du bac à sable, menant à l'exécution de code arbitraire. Affecte les versions <= 3.10.5, corrigé dans la version 3.11.0.
* **CVE-2026-43999** (score CVSS : 9.9) : Contournement de la liste blanche intégrée de NodeVM permettant de charger des `builtins` exclus comme `child_process` et d'obtenir une exécution de code à distance. Affecte la version 3.10.5, corrigé dans la version 3.11.0.
* **CVE-2026-44005** (score CVSS : 10.0) : Permet au JavaScript contrôlé par l'attaquant de s'échapper du bac à sable et d'activer la pollution de prototype. Affecte les versions 3.9.6-3.10.5, corrigé dans la version 3.11.0.
* **CVE-2026-44006** (score CVSS : 10.0) : L'injection de code via `BaseHandler.getPrototypeOf` permet l'évasion du bac à sable et l'exécution de code à distance. Affecte les versions <= 3.10.5, corrigé dans la version 3.11.0.
* **CVE-2026-44007** (score CVSS : 9.1) : Un contrôle d'accès inapproprié permet l'évasion du bac à sable et l'exécution de commandes arbitraires du système d'exploitation. Affecte les versions <= 3.11.0, corrigé dans la version 3.11.1.
* **CVE-2026-44008** (score CVSS : 9.8) : L'évasion du bac à sable via `neutralizeArraySpeciesBatch()` permet l'exécution de commandes arbitraires. Affecte les versions <= 3.11.1, corrigé dans la version 3.11.2.
* **CVE-2026-44009** (score CVSS : 9.8) : L'évasion du bac à sable via une exception `null proto` permet l'exécution de commandes arbitraires. Affecte les versions <= 3.11.1, corrigé dans la version 3.11.2.
## Remédiation
Ces divulgations font suite au correctif de la **CVE-2026-22709** en janvier, une autre vulnérabilité critique d'évasion de bac à sable. **Patrik Simek**, le mainteneur de **vm2**, a reconnu les défis persistants dans le maintien d'un bac à sable JavaScript sécurisé et anticipe la découverte de contournements supplémentaires.
Il est fortement conseillé aux utilisateurs de **vm2** de mettre à jour vers la dernière version (3.11.2) afin d'atténuer ces risques critiques.