Une évasion de bac à sable a été signalée dans vm2 lorsque celui-ci est utilisé avec Node.js 26 : du JavaScript exécuté dans une VM par défaut peut obtenir des capacités du processus Node.js hôte. Le problème est décrit pour les versions de vm2 de 3.10.1 à 3.11.6 incluses et est corrigé en 3.11.7.
Analyse technique
Les API WebAssembly `compileStreaming` et `instantiateStreaming` peuvent exposer un chemin de promesse de l’environnement hôte ; la manipulation de `Symbol.species` via `Promise.prototype.finally` peut alors permettre de remonter jusqu’à des objets hôtes. L’avis précise que l’exploitabilité à distance dépend de l’application qui intègre vm2 et accepte le code fourni par un attaquant.
Impact, versions et correctif
Détection / vérification
Vérifier les déploiements de vm2 exposant une VM à du JavaScript non fiable, ainsi que la version de Node.js utilisée ; le scénario décrit concerne Node.js 26.
Action recommandée
Mettre à niveau vm2 vers la version 3.11.7 ou ultérieure. Ne pas considérer vm2 comme une frontière de sécurité suffisante pour isoler du code non fiable dans les conditions décrites.
Sources
Priorisation DFS : P3 · 1 source(s).