CVE-2026-92942 in vm2
Riassunto
di VulDB • 17/09/2026
vm2 prima della versione 3.11.7 (versioni interessate <= 3.11.6) non applica l'opzione VM({ timeout }) al codice eseguito al di fuori della chiamata sincrona VM#run(). Il timeout avvolge solo la singola chiamata a _runScript() tramite doWithTimeout() in lib/vm.js, e FinalizationRegistry e WeakRef sono esposti al codice sandboxato senza modifiche (non figurano tra le variabili globali hardeningizzate in lib/setup-sandbox.js). Il codice sandboxato può registrare una callback di pulizia per un oggetto associata a un FinalizationRegistry e successivamente rimuovere l'unico riferimento forte ad esso; vm.run() restituisce il controllo entro il timeout configurato, ma quando il garbage collector V8 recupera successivamente l'oggetto, invoca la callback di pulizia sandboxata al di fuori di qualsiasi contabilizzazione del timeout vm2. Un ciclo infinito (busy loop) in tale callback blocca il loop degli eventi dell'host per un periodo indefinito, causando una denial of service (DoS). Il momento dell'esecuzione dipende dal garbage collector (ad esempio sotto pressione della memoria o con l'utilizzo di --expose-gc).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.