PT-2026-30274 · Sandboxjs · Sandboxjs
Chawdamrunal
·
Publicado
2026-04-03
·
Atualizado
2026-04-06
·
CVE-2026-34217
CVSS v3.1
7.2
Alta
| Vetor | AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
Nome do Software Vulnerável e Versões Afetadas
SandboxJS versões anteriores a 0.8.36
Descrição
Uma vulnerabilidade de modificação de escopo existe no SandboxJS, especificamente nas versões 0.8.35 e anteriores. Código sandboxed não confiável pode vazar objetos internos do interpretador através do operador
new, expondo objetos de escopo do sandbox a código não confiável. Embora a avaliação de código e os protótipos permaneçam protegidos, isso permite a modificação de escopos dentro do sandbox. A causa raiz são etapas de sanitização ausentes no manipulador do operador New dentro do arquivo src/executor.ts (linhas 1275–1280). Especificamente, os argumentos do construtor não são higienizados usando valueOrProp(), e o valor de retorno não é higienizado usando getGlobalProp() ou sanitizeArray(). Isso contrasta com o manipulador Call, que higieniza corretamente tanto os argumentos quanto os valores de retorno. A vulnerabilidade permite que um invasor acesse objetos JavaScript host reais, como globalThis, Function e eval, através de um objeto Prop e, em seguida, armazene uma referência ao escopo do sandbox dentro de um objeto construído. Uma prova de conceito demonstra a capacidade de vazar o objeto de escopo criando um construtor que captura o contexto do objeto isNaN. O ataque não requer autenticação ou interação do usuário e funciona com a configuração padrão do sandbox.Recomendações
Atualize para a versão 0.8.36 ou posterior do SandboxJS para resolver a vulnerabilidade. Como uma correção crítica, higienize os argumentos do construtor no manipulador do operador
New adicionando valueOrProp() ao array de argumentos. Implemente a higienização profunda dos valores de retorno do sandbox para remover referências internas. Congele ou sele os objetos options.globals e scope.allVars após a construção para evitar mutação.Exploit
Correção
Exposure of Resource to Wrong Sphere
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Sandboxjs