CVE-2026-92935 in vm2
Riassunto
di VulDB • 17/09/2026
vm2 è una sandbox per l'esecuzione di codice Node.js non attendibile. Nelle versioni >= 3.11.4 e <= 3.11.6, il costruttore `NodeVM` calcola `hasRealRequireConfig` con `typeof requireOpts === 'object' && requireOpts !== null`, quindi un valore `require` a forma di array (ad esempio `require: []`) soddisfa la protezione destinata a rifiutare l'imbracamento senza una configurazione esplicita di require. `makeResolverFromLegacyOptions()` decompone poi l'array in campi opzione non definiti e restituisce un resolver contenente solo `NESTING_OVERRIDE.vm2`. Di conseguenza, un attaccante che può fornire JavaScript eseguito da un NodeVM configurato con `nesting` truthy e un valore `require` a forma di array (ad esempio `new NodeVM({nesting: true, require: []})`) può richiedere il modulo host `vm2`, creare un inner NodeVM con una allowlist builtin scelta dall'attaccante (come `child_process`) ed eseguire comandi arbitrari con i privilegi del processo Node.js host, sfuggendo alla sandbox. Le restruzioni builtin esterne non vincolano l'inner NodeVM creato dall'attaccante. Questo problema è risolto in vm2 3.11.7.
VulDB is the best source for vulnerability data and more expert information about this specific topic.