Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-92956__vm2__test__20261012 — Sandbox Node.js per eseguire JavaScript non attendibile in-process, utilizzando Proxy e un require controllato per limitare l'accesso ai moduli integrati ed esterni. | Kitploit
Strumenti/GitHubGitHub/araxyai/cve-2026-92956__vm2__test__20261012
Strumenti DifensiviAnalisi del CodiceVirtualizzazione per la SicurezzaSicurezza WebUtilità e Framework
GitHubaraxyai/cve-2026-92956__vm2__test__20261012

CVE-2026-92956__vm2__test__20261012

Sandbox Node.js per eseguire JavaScript non attendibile in-process, utilizzando Proxy e un require controllato per limitare l'accesso ai moduli integrati ed esterni.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
1123 giorni faNon ancora revisionato
Condividi

vm2 [![Versione NPM][npm-image]][npm-url] [![Download NPM][downloads-image]][downloads-url] [![Licenza][license-image]][license-url] Node.js CI [![Vulnerabilità note][snyk-image]][snyk-url]

vm2 è una sandbox in grado di eseguire codice non attendibile con i moduli integrati di Node inseriti in una whitelist.

Caratteristiche

  • Esegue codice non attendibile in modo sicuro in un singolo processo, fianco a fianco con il tuo codice
  • Controllo completo sull'output della console della sandbox
  • La sandbox ha un accesso limitato ai metodi del processo
  • È possibile richiedere moduli (integrati ed esterni) dalla sandbox
  • Puoi limitare l'accesso a determinati (o a tutti i) moduli integrati
  • Puoi chiamare in modo sicuro metodi e scambiare dati e callback tra sandbox
  • È immune a tutti i metodi di attacco conosciuti
  • Supporto per il transpiler

Come funziona

  • Utilizza il modulo VM interno per creare un contesto sicuro.
  • Utilizza i Proxy per impedire l'uscita dalla sandbox.
  • Sovrascrive il require integrato per controllare l'accesso ai moduli.

Per uno sguardo approfondito al funzionamento interno di vm2, consulta il file CONTRIBUTING.md.

Qual è la differenza tra il vm di Node e vm2?

Provalo tu stesso:

import { runInNewContext } from "node:vm";

runInNewContext('this.constructor.constructor("return process")().exit()');
console.log('Never gets executed.');
import { VM } from 'vm2';

new VM().run('this.constructor.constructor("return process")().exit()');
// Throws ReferenceError: process is not defined

Installazione

npm install vm2

Esempi rapidi

import { VM } from 'vm2';

const vm = new VM();
vm.run(`process.exit()`); // TypeError: process.exit is not a function
import { NodeVM } from 'vm2';

const vm = new NodeVM({
	require: {
		external: true,
		root: './',
	},
});

vm.run(
	`
    var request = require('request');
    request('http://www.google.com', function (error, response, body) {
        console.error(error);
        if (!error && response.statusCode == 200) {
            console.log(body); // Show the HTML for the Google homepage.
        }
    });
`,
	'vm.js',
);

Documentazione

  • VM
  • NodeVM
  • VMScript
  • Gestione degli errori
  • Debug di codice in sandbox
  • Oggetti di sola lettura
  • Oggetti protetti
  • Relazioni tra sandbox
  • CLI
  • Modifiche da 2.x a 3.x
  • Documentazione 1.x e 2.x
  • Contribuire

VM

VM è una sandbox semplice per eseguire in modo sincrono codice non attendibile senza la funzionalità require. Sono disponibili solo gli oggetti integrati di JavaScript e il Buffer di Node. Le funzioni di pianificazione (setInterval, setTimeout e setImmediate) non sono disponibili per impostazione predefinita.

Opzioni:

  • timeout - Timeout dello script in millisecondi. ATTENZIONE: potresti voler usare questa opzione insieme a allowAsync=false. Inoltre, operare sugli oggetti restituiti dalla sandbox può eseguire codice arbitrario ed eludere il timeout. Si dovrebbe verificare se l'oggetto restituito è un primitivo con typeof e scartarlo completamente (anche eseguire il logging o creare messaggi di errore con un tale oggetto potrebbe eseguire nuovamente codice arbitrario) nel caso contrario.
  • sandbox - L'oggetto globale della VM.
  • compiler - javascript (predefinito), typescript, coffeescript o una funzione di compilazione personalizzata. La libreria presuppone che tu abbia il compilatore preinstallato se il valore è impostato su typescript o coffeescript.
  • eval - Se impostato su false, qualsiasi chiamata a eval o ai costruttori di funzioni (Function, GeneratorFunction, ecc.) genererà un EvalError (predefinito: true).
  • wasm - Se impostato su false, qualsiasi tentativo di compilare un modulo WebAssembly genererà un WebAssembly.CompileError (predefinito: true).
  • allowAsync - Se impostato su false, qualsiasi tentativo di eseguire codice usando async genererà un VMError (predefinito: true).

IMPORTANTE: Il timeout è efficace solo sul codice sincrono che esegui tramite run. Il timeout NON funziona su alcun metodo restituito da VM. Ci sono alcune situazioni in cui il timeout non funziona - vedi #244.

import { VM } from 'vm2';

const vm = new VM({
	timeout: 1000,
	allowAsync: false,
	sandbox: {},
});

vm.run('process.exit()'); // throws ReferenceError: process is not defined

Puoi anche recuperare valori dalla VM.

let number = vm.run('1337'); // returns 1337

SUGGERIMENTO: consulta i test per ulteriori esempi d'uso.

NodeVM

A differenza di VM, NodeVM consente di richiedere moduli allo stesso modo in cui lo faresti nel contesto di Node normale.

Opzioni:

Scarica lo strumento