CVE-2026-24120: Mais uma fuga de sandbox no vm2, ou um problema fundamental de design?

CVE-2026-24120: Mais uma fuga de sandbox no vm2, ou um problema fundamental de design?
Foi publicada uma análise do CVE-2026-24120 no vm2, uma sandbox para executar JavaScript dentro do Node.js. A exploração permite que um atacante escape da sandbox e execute comandos no host. As versões até 3.10.3 são afetadas, com o problema corrigido na versão 3.10.5.
O registro CVE descreve o problema como uma correção insuficiente para o CVE-2023-37466, relacionado ao Symbol.species da Promise. No entanto, o autor descobriu que resetPromiseSpecies, o mecanismo responsável por essa proteção, permaneceu inalterado na versão 3.10.5. Em vez disso, os desenvolvedores reforçaram o tratamento de exceções substituindo ensureThis() por handleException(). Um patch separado também bloqueou WebAssembly.JSTag, que fornecia outro caminho para vazar uma exceção do realm do host para o código da sandbox.
A operação chave no PoC é e.name = Symbol(). Quando e.stack é acessado, o V8 tenta converter name para uma string, causando um TypeError no realm do host. Dentro de uma função assíncrona, isso faz com que a Promise seja rejeitada com um erro do realm do host. Uma vez que esse objeto chega ao código da sandbox, o atacante pode usar constructor.constructor para alcançar a Function do host, acessar process e executar comandos.
O autor rastreou cinco correções para o mesmo mecanismo de fuga de sandbox ao longo de 32 meses: através de diferentes caminhos, objetos do realm do host repetidamente se tornaram acessíveis ao código dentro da sandbox. Apenas quatro versões — 3.10.5, 3.11.0, 3.11.1 e 3.11.2 — abordaram coletivamente 18 avisos de segurança. Além disso, uma das vulnerabilidades subsequentes foi introduzida por um mecanismo de endurecimento adicionado em resposta a um aviso anterior.
O próprio README do vm2 alerta sobre a dificuldade fundamental de construir uma sandbox JavaScript confiável no processo. A arquitetura de tal sandbox deixa uma ampla superfície de ataque para novas técnicas de fuga emergirem.
Vulnerabilidades
10
CVE-2023-37466
10
CVE-2026-24120
Pesquisadores
Seunghyun Lee
Xion
Xmiliah
Fornecedor
Vm2
Produto
Node.Js
Vm2
Webassembly.Jstag