CVE-2026-92942 in vm2
Sumário
de VulDB • 17/09/2026
A versão do vm2 anterior à 3.11.7 (versões afetadas <= 3.11.6) não aplica a opção VM({ timeout }) no código executado fora da chamada síncrona VM#run(). O tempo limite envolve apenas uma única chamada para _runScript() via doWithTimeout() em lib/vm.js, e FinalizationRegistry e WeakRef são expostos ao código na sandbox sem modificações (eles não estão entre as variáveis globais endurecidas em lib/setup-sandbox.js). Código na sandbox pode registrar um callback de limpeza da FinalizationRegistry contra um objeto e, em seguida, remover a única referência forte para ele; vm.run() retorna dentro do tempo limite configurado, mas quando o coletor de lixo do V8 posteriormente recupera o objeto, invoca o callback de limpeza na sandbox fora de qualquer contagem de timeout do vm2. Um loop ocupado nesse callback bloqueia o event loop do host por um período ilimitado, resultando em negação de serviço (DoS). O momento da invocação depende do coletor de lixo (por exemplo, sob pressão de memória ou com --expose-gc).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.