CVE-2026-92935 in vm2
Résumé
par VulDB • 17/09/2026
vm2 est un bac à sable (sandbox) pour l'exécution de code Node.js non fiable. Dans les versions >= 3.11.4 et <= 3.11.6, le constructeur `NodeVM` calcule `hasRealRequireConfig` avec `typeof requireOpts === 'object' && requireOpts !== null`, donc une valeur `require` en forme de tableau (par exemple `require: []`) satisfait la garde destinée à rejeter l'imbrication sans configuration explicite de `require`. La fonction `makeResolverFromLegacyOptions()` déstructure ensuite le tableau en champs d'options indéfinis et renvoie un résolveur contenant uniquement `NESTING_OVERRIDE.vm2`. Par conséquent, un attaquant capable de fournir du JavaScript exécuté par un `NodeVM` configuré avec une valeur truthy pour `nesting` et une valeur `require` en forme de tableau (par exemple `new NodeVM({nesting: true, require: []})`) peut importer le module hôte `vm2`, créer un `NodeVM` interne avec une liste blanche d'intrinsèques choisie par l'attaquant (telle que `child_process`), et exécuter des commandes arbitraires avec les privilèges du processus Node.js hôte, s'échappant ainsi du bac à sable. Les restrictions intrinsèques externes ne contraignent pas le `NodeVM` interne créé par l'attaquant. Ce problème est corrigé dans vm2 3.11.7.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.