PT-2026-94319 · Npm+1 · Vm2+1
CVSS v3.1
9.9
Crítica
| Vetor | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
vm2 versões 3.9.6 até 3.11.6
Descrição
Um bypass na lista de permissões de builtins do NodeVM permite a fuga de sandbox no Node.js 24 e versões posteriores quando o incorporador permite explicitamente o builtin
node:test. No Node.js 24+, o module.builtinModules expõe a chave apenas de esquema node:test, que não é coberta pela proteção DANGEROUS BUILTINS baseada em família e é armazenada no carregador genérico de passagem do host. Como a função requireImpl() em lib/setup-node-sandbox.js remove um único prefixo node: antes da busca do builtin, o código da sandbox que chama require('node:node:test') resolve para a chave node:test armazenada e recebe um proxy somente leitura para o módulo do host. Chamadas para node:test.run() são encaminhadas para a implementação do host, que inicia um processo Node separado para execução de testes isolados por processo e transmite valores execArgv controlados pelo invasor. O fornecimento de --eval=<JavaScript> permite a execução de JavaScript arbitrário em um processo Node do host irrestrito fora da sandbox do NodeVM.Recomendações
Atualize o vm2 para a versão 3.11.7.
Como medida paliativa temporária, evite permitir explicitamente o builtin
node:test na configuração de require.Exploit
Correção
Protection Mechanism Failure
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Node.Js
Vm2