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-2796-and-CVE-2026-2768-escape-the-wasm-box — Cadeia completa do Firefox: CVE-2026-2796 type confusion em wasm -> RCE no processo de conteúdo, além da análise de escape do processo pai do CVE-2026-2768 (ambos corrigidos no Firefox 148) | Kitploit
Ferramentas/GitHubGitHub/sneakynachos/cve-2026-2796-and-cve-2026-2768-escape-the-wasm-box
Análise de VulnerabilidadesExploraçãoSegurança WebExploração de Binários
GitHubsneakynachos/cve-2026-2796-and-cve-2026-2768-escape-the-wasm-box

CVE-2026-2796-and-CVE-2026-2768-escape-the-wasm-box

Cadeia completa do Firefox: CVE-2026-2796 type confusion em wasm -> RCE no processo de conteúdo, além da análise de escape do processo pai do CVE-2026-2768 (ambos corrigidos no Firefox 148)

Ver Repositório
1há 3 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-2796 + CVE-2026-2768 — Fuga da Caixa Wasm

Pesquisa de exploração de cadeia completa do Firefox: uma confusão de tipos do WebAssembly para execução de código no renderizador, encadeada em direção a um bug do processo pai para uma fuga da sandbox. Ambos os bugs foram corrigidos no Firefox 148 (MFSA-2026-13); o alvo aqui é uma árvore nightly do Firefox 148 @ 2fbc0748c4 (2026-01-14), anterior a ambas as correções.

  • CVE-2026-2796 (Bug 2013165): compilação incorreta do JIT / confusão de tipos de assinatura na otimização de importação WebAssembly do SpiderMonkey.
  • CVE-2026-2768 (Bug 2014101): fuga da sandbox — dados IPC não validados conduzem a uma escrita fora dos limites no código do IndexedDB do processo pai.

Arquitetura da cadeia

root@kitploit:~
page loads crafted wasm module
        │
CVE-2026-2796: Function.prototype.call.bind unwrap skips signature check
        │  → i64 ↔ (ref $t) confusion → addrOf/fakeobj
        │  → fake WasmArrayObject → arbitrary R/W in the CONTENT process
        │  → forged WasmFuncRef → hijack call target ([funcref+0x38])
        ▼
native code exec INSIDE the sandboxed content process  (sbLevel 3)
        │  (sandbox blocks exec/fork — need a parent bug)
        ▼
CVE-2026-2768: forge IndexedDB add/put IPC with out-of-range
        mAutoIncrementKeyOffsets (ParamTraits<Key> validates nothing)
        │  → parent writes 8 bytes at attacker-controlled offset
        ▼
memory corruption in the UNSANDBOXED parent process = full escape

O que é demonstrado

DemonstraçãoOndeResultado
poc/shell/poc-crash.jsjs shell0xDEADBEEF desreferenciado como funcref → SIGSEGV em 0xdeadbf2f
poc/shell/poc-addrof.jsjs shelltestes automáticos de R/W arbitrário passam
poc/shell/poc-forge.jsjs shellcontrole de PC: crash no canário plantado
poc/shell/poc-rce.jsjs shellsystem("id > /tmp/CVE-2026-2796-PWNED; open -a Calculator") — o arquivo contém uid=501(sid) ..., a Calculadora abre
poc/browser/stage1-browser.htmlNightly (conteúdo sbLevel 3)R/W arbitrário na aba isolada; funcref forjado salta para 0x4141414141414141 → a aba trava, o pai sobrevive
poc/browser/stage1-browser-cmd.htmlNightly (conteúdo sbLevel 3)vaza a base da XUL, resolve posix_spawnp (0x187xxxxx), e a chama com /bin/sh -c "touch /tmp/PWNED-FROM-CONTENT" → a sandbox do macOS nega o exec: arquivo não criado, página intacta — prova de que RCE no conteúdo sozinho ≠ execução de comandos
poc/browser/sandbox-proof.htmlNightly (conteúdo sbLevel 3)execução nativa dentro das regras da sandbox: getpid() retorna o PID real da aba (confere com ps), e write(1, ...) da libc bruta cai no log do terminal do navegador — sem fork/exec, sem abertura de arquivos
poc/browser/fd3-proof.htmlNightly (conteúdo sbLevel 3)grava 32 bytes brutos no fd 3 (o socket IPDL do pai): o parser IPC do pai consome bytes do atacante (Message needs unreceived descriptors ... num_handles:33), descarta a mensagem e mata a aba ("Exiting due to channel error") — a primitiva de transporte que o estágio 2 arma com mensagens IndexedDB bem formadas, porém maliciosas
poc/browser/stage2-trigger.htmlNightlyalcance em JS puro do caminho do bug do pai (chaves de índice auto-incremento [1,2,3,4])

Consulte docs/full-escape.md para a análise de causa raiz do estágio 2 (diffs das correções, serialização IPC, estratégia de exploração).

Compilando os alvos vulneráveis

root@kitploit:~
# Tree: mozilla-firefox/firefox @ 2fbc0748c4 (2026-01-14, pre-FF148)

# 1) js shell (stage-1 development, unsandboxed):
cd js/src && ../../configure --enable-debug --enable-optimize \
  --without-intl-api --enable-project=js && cd _obj && make -j8

# 2) full browser (stage 2). mozconfig:
#    export CC=/usr/bin/clang ; export CXX=/usr/bin/clang++
#    ac_add_options --enable-application=browser
#    ac_add_options --disable-debug --enable-optimize
#    ac_add_options --disable-crashreporter --disable-updater --disable-tests
#    ac_add_options --enable-sandbox
#    ac_add_options --without-wasm-sandboxed-libraries
# requires: node, cbindgen, rustc >= 1.87, macOS CLT SDK
# local build notes:
#  - private header sys/fileport.h shim added to objdir dist/include/sys/
#  - one compile guard added: NSGlassEffectView (macOS 26 SDK symbol) wrapped
#    in #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 260000 in widget/cocoa/
#    nsCocoaWindow.mm (build-environment fix, no security impact)

Execute os PoCs do navegador: inicie obj-browser/dist/Nightly.app com um perfil que defina browser.dom.window.dump.enabled=true, abra os arquivos HTML via file:// e observe o stdout para a saída de dump(). A queda da aba aparece como process <pid> exited on signal 10 no log do pai.

Deslocamentos (macOS arm64)

WasmArrayObject: numElements @+16, data ptr @+24, inline data @+40. WasmFuncRef: typeDef ptr @+0x40, call target @+0x38. Ponteiro nativo de JSFunction @+0x20. js shell: os_system @ base+0x1a9f8, system GOT @ base+0x11d47b0. Navegador: base da XUL encontrada ao escanear para trás a partir de um ponteiro de código nativo WebIDL (console.log JSFunction +0x20) até a magic 0xfeedfacf do Mach-O; _posix_spawnp GOT @ XUL+0x9bb7d30, _getpid GOT @ XUL+0x9bb7600, _write GOT @ XUL+0x9bb87e0. As janelas de array falso devem viver em um array fora de linha (malloc'd) — objetos inline/viveiro (nursery) são movidos pelo GC durante varreduras longas.

Escopo / limitações honestas

A execução de código no renderizador via CVE-2026-2796 é totalmente demonstrada (shell e navegador). A análise da fuga da sandbox do CVE-2026-2768 é verificada na fonte contra o diff da correção; o gatilho ao vivo de corrupção do processo pai de ponta a ponta é um trabalho em andamento (consulte docs). Esta pesquisa é para uso defensivo/educacional; as vulnerabilidades estão corrigidas nas versões atuais.

Referências

  • MFSA-2026-13
  • NVD: CVE-2026-2796
  • Correção do CVE-2026-2796: commit e2acef67 do mozilla-firefox/firefox
  • Correção do CVE-2026-2768: commit c5dea6ec do mozilla-firefox/firefox

Aviso legal

Apenas para pesquisa de segurança, educação e testes defensivos. Não use contra sistemas que você não possui ou para os quais não tem autorização explícita para testar.

Baixar ferramenta