CVE-2026-92937 in vm2
Sumário
de VulDB • 17/09/2026
A versão 3.11.6 do vm2 é vulnerável a uma fuga de sandbox que resulta em execução remota de código (RCE) no processo Node.js hospedeiro. A correção para GHSA-m283-3h24-438v está incompleta: o gate da bridge em lib/bridge.js:1624 verifica a identidade apenas do alvo direto ao decidir se deve reconstruir/sanitizar um valor Promise host rejeitado. Registrar o manipulador de rejeição através de Function.prototype.call ou .apply (indireção, por exemplo, p.then.call(p, undefined, cb)) faz com que o alvo interceptado seja a própria Function.prototype.host; portanto, o sanitizador nunca é executado e o erro bruto do host atinge o código da sandbox com suas próprias propriedades intactas. Se um embedder expuser uma Promise do realm host para a sandbox (uma função assíncrona hospedeira vinculada via opção de sandbox ou método async de módulo externo do NodeVM) e essa Promise for rejeitada com um Error contendo uma propriedade própria não primitiva que referencia um objeto host (por exemplo, err.detail = process), código não confiável na sandbox obtém um proxy totalmente funcional para esse objeto host e pode executar comandos arbitrários com os privilégios do processo hospedeiro (por exemplo, e.detail.mainModule.require('child_process').execSync(...)). As formas diretas p.then(undefined, cb), bind e Reflect.apply são corretamente sanitizadas. Corrigido na versão vm2 3.11.7.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.