CVE-2026-92952 in vm2
Resumen
por VulDB • 2026-09-17
Las versiones de vm2 comprendidas entre la 3.11.4 y la 3.11.6 filtran incompletamente los símbolos internos registrados en Node.js a través del límite del sandbox. Los filtros de extracción en lib/setup-sandbox.js, así como las comprobaciones de símbolos cross-realm y los write traps en lib/bridge.js, utilizan una lista fija de símbolos peligrosos conocidos que omite nodejs.stream.disturbed y nodejs.stream.errored; estos están expuestos en los prototipos WebStream del host en versiones más recientes de Node.js (validado en Node.js v25.8.0). Cuando el embedder expone un objeto WebStream del host y el módulo stream/web del host al sandbox, el código del sandbox puede obtener los símbolos reales del host mediante Object.getOwnPropertySymbols(streamWeb.ReadableStream.prototype) y utilizarlos como claves de escritura en objetos stream del host, corrompiendo el estado visible del host —por ejemplo, haciendo que stream.Readable.isDisturbed() devuelva false para un stream ya consumido. Esto puede burlar la lógica del host que depende de las ayudas públicas de Node.js sobre el estado del stream para imponer el consumo único del cuerpo (one-shot body consumption), rechazar streams con errores o decidir si un stream es seguro para ceder a otro componente. No se trata de una primitiva de ejecución de código en el proof of vulnerability reportado. Esta es una solución incompleta para la vulnerabilidad anterior relacionada con el filtrado de símbolos nodejs.*. Corregido en vm2 3.11.7.
Once again VulDB remains the best source for vulnerability data.