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
Ferramentas/GitHubGitHub/sneakynachos/cve-2026-12295-uxxs-in-my-wasm
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPapers e PesquisaDesenvolvimento de Payloads
GitHubsneakynachos/cve-2026-12295-uxxs-in-my-wasm

CVE-2026-12295-UXXS-in-my-wasm

Firefox content->parent srcdoc forge (N-day, bug 2040160): PDocumentChannel forjado com SrcdocData em um URI não-about:srcdoc -> HTML do atacante servido na origem da vítima (UXSS), via injeção de caminho de envio mojo-port a partir de um processo de conteúdo comprometido

Ver Repositório
1há 2 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-12295 — dados srcdoc em um URI que não é about:srcdoc (UXSS no Firefox)

Prova de conceito: um processo de conteúdo comprometido forja uma carga de PDocumentChannel cujo nsDocShellLoadState carrega SrcdocData juntamente com um URI arbitrário. Builds vulneráveis servem o HTML do atacante como documento na origem da vítima — leitura de mesma origem + exfiltração (UXSS).

Alvo: Firefox 149.0a1 nightly @ 2fbc0748c4 (vulnerável, pré-correção), macOS arm64. Corrigido no Firefox 152 — bug 2040160, commit 54dc16d08771 "Reject srcdoc data on non-about:srcdoc URI loads".

O bug

O processo pai desserializa um nsDocShellLoadState a partir de mensagens IPDL conteúdo→pai. O construtor vulnerável apenas rejeitava para cargas acionadas por conteúdo; não era validado. Quando um estado de carga carrega dados srcdoc com um URI que não é , o docshell constrói um canal de fluxo de entrada que serve o HTML srcdoc — e o documento resultante recebe a origem do URI.

javascript:
SrcdocData
about:srcdoc
nesse URI

A correção adiciona um FatalError no construtor IPDL do nsDocShellLoadState quando !mSrcdocData.IsVoid() && !mURI->SchemeIs("view-source") && !NS_IsAboutSrcdoc(mURI), além de asserts de endurecimento em nsDocShell e Document::StartDocumentLoad.

Bug irmão: CVE-2026-74939 (RemoteTypeOverride) — mesmo construtor, mesma mensagem transportadora, mesmo maquinário de entrega (ver ../poc-cve-2026-74939). Esta PoC reutiliza essa forja com um campo diferente invertido; nenhum RemoteTypeOverride é necessário.

A demonstração

  • Página do atacante srcdoc.html em http://127.0.0.1:8778 (origem A, comprometida via os primitivos wasm do estágio 1 em wasm-bytes.js).
  • Ela forja um construtor PNecko::PDocumentChannel: URI = http://localhost:8778/nav.html (origem B), SrcdocData = <HTML do atacante>, BrowsingContext de nível superior de um popup about:blank no mesmo processo — entregue pelo caminho real de envio mojo (operator new → construtor IPC::Message → Pickle::WriteBytes → MessageChannel::Send).
  • O pai aceita a carga, troca o processo do popup para webIsolated=http://localhost, e o docshell serve nosso HTML como documento na origem B.
  • O payload busca /secret.txt (mesma origem em B — uma busca real de origem cruzada a partir de A seria bloqueada por CORS) e o exfiltra para A.

Evidência (/tmp/srv.log após ./irun):

root@kitploit:~
REQ_GET /secret.txt
REQ_GET /exfil?d=flag%7Bsrcdoc-crossed-origins-2040160%7D

Arquivos

ArquivoFinalidade
srcdoc.htmlPágina PoC, executada dentro do processo de conteúdo comprometido
forge.pyconstrói a mensagem forjada (autoverificável) → forge.bin/forge.json
wasm-bytes.jsprimitivos do estágio 1: R/W arbitrário, chamadas funcref (CVE-2026-2796)
mdrive2.pyharness marionette para iniciar e conduzir o Nightly
irunexecução instrumentada: lldb anexado ao pai + evidência MOZ_LOG/srv.log
profile.user.jsprefs do perfil do Firefox (fission ativado, dump habilitado)
parse_dc.pyparser byte-exato para mensagens DocumentChannel capturadas
captured-messages/dc_1.binmensagem real capturada, usada como modelo da forja
nav.html, secret.txtfixture da página da vítima + segredo para a demonstração

Execução

Pré-requisitos: build vulnerável do Nightly em /Users/sid/gecko-2766/obj-browser, .venv com psutil, e um servidor web em 0.0.0.0:8778 servindo este diretório (ex.: python3 /tmp/srv.py, registrando em /tmp/srv.log).

root@kitploit:~
python3 forge.py     # constrói forge.bin/forge.json (autoverificável)
./irun               # inicia + injeta + coleta evidência

Nota: um processo de conteúdo pode sofrer SIGSEGV no encerramento após o envio (GC sobre os objetos falsos); toda a evidência é emitida antes disso.

Referências

  • Bug 2040160 da Mozilla — commit de correção 54dc16d08771 (MFSA 2026-57, Firefox 152)
  • CVE-2026-74939 — forja de estado de carga irmã (RemoteTypeOverride)
  • CVE-2026-2796 — RCE de conteúdo do estágio 1 fornecendo os primitivos
Baixar ferramenta