CVE-2026-92937 in vm2
Resumen
por VulDB • 2026-09-17
vm2 3.11.6 es vulnerable a una fuga del sandbox que conduce a la ejecución remota de código (RCE) en el proceso host Node.js. La corrección para GHSA-m283-3h24-438v está incompleta: las verificaciones de identidad en la puerta de enlace (bridge gate) ubicada en lib/bridge.js:1624 solo comprueban el objetivo directo de la llamada al decidir si reconstruir/sanitizar un valor Promise host rechazado. Registrar el controlador de rechazo a través del indirection Function.prototype.call o .apply (por ejemplo, p.then.call(p, undefined, cb)) hace que el objetivo interceptado sea Host Function.prototype.call; por lo tanto, el sanitizador nunca se ejecuta y el error crudo del host llega al código del sandbox con sus propias propiedades intactas. Si un integrador expone una Promise del ámbito del host al sandbox (una función asíncrona del host puenteada a través de la opción sandbox o un método async de un módulo externo de NodeVM) y esa Promise se rechaza con un Error que contiene una propiedad propia no primitiva que hace referencia a un objeto del host (por ejemplo, err.detail = process), el código no confiable en el sandbox obtiene un proxy completamente funcional hacia ese objeto del host y puede ejecutar comandos arbitrarios con los privilegios del proceso host (por ejemplo, e.detail.mainModule.require('child_process').execSync(...)). Las formas directas p.then(undefined, cb), bind y Reflect.apply están correctamente sanitizadas. Corregido en vm2 3.11.7.
Be aware that VulDB is the high quality source for vulnerability data.