
CVE-2026-6765, solo test dei gestori FormAutofill esposti in Firefox
Segnalatore accreditato da Mozilla in MFSA 2026-30: Abdulaziz Alasaiqah. Questa directory contiene un harness di riproduzione reale per la vulnerabilità. È pensato per essere eseguito contro una build vulnerabile di Firefox scaricata localmente. Non tocca mai alcun sistema attivo o di terze parti.
Repository PoC corrispondente: https://github.com/defineid/SkeletonKey
Writeup: writeup-ff-autofill.html in questo portfolio.
| Campo | Valore | Fonte |
|---|---|---|
| CVE | CVE-2026-6765 | MITRE cvelistV5 (stato PUBLISHED, CNA Mozilla) |
| Titolo | Information disclosure in the Form Autofill component | NVD · MFSA 2026-30 |
| Gravità | Moderata · CVSS 5.3 · AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N | NVD |
| CWE | 359 · Exposure of Private Information | NVD |
| Corretto in | Firefox 150 · Firefox ESR 140.10 · Thunderbird 150 / 140.10 | MFSA 2026-30 |
| Bug | bugzilla.mozilla.org/show_bug.cgi?id=2022419 (ad accesso limitato per sicurezza) | Riferimento NVD |
| Segnalatore | Abdulaziz Alasaiqah | MFSA 2026-30 |
La coppia di JSWindowActor di FormAutofill (FormAutofillChild nel contenuto e
FormAutofillParent nel processo padre) scambia messaggi. Nell'attuale
mozilla-central FormAutofillParent.receiveMessage filtra qualsiasi cosa al di fuori
dell'insieme consentito dietro il controllo di automazione:
// toolkit/components/formautofill/FormAutofillParent.sys.mjs (fixed tree)
if (!FORM_AUTOFILL_MESSAGES.has(name) && !Cu.isInAutomation) {
return undefined;
}
Il commento nel sorgente afferma che i gestori Save e Remove vengono invocati solo dai test:
FormAutofill:SaveAddressFormAutofill:SaveCreditCardFormAutofill:RemoveAddressesFormAutofill:RemoveCreditCardsNelle build interessate tali gestori riservati ai test erano raggiungibili senza
il controllo Cu.isInAutomation, quindi un contesto di contenuto poteva raggiungere percorsi di FormAutofill
che non erano mai stati pensati per essere esposti al contenuto web. Mozilla ha classificato l'esposizione risultante
come divulgazione di informazioni dei dati autofill memorizzati.
Nota sulla raggiungibilità: getActor risiede su windowGlobalChild, una proprietà
solo chrome. Lo script ordinario di una pagina non lo vede mai, quindi il modello di minaccia è un processo di contenuto
che un attaccante influenza già (un compromesso del renderer o un percorso di codice
lato contenuto) che invia il messaggio dell'actor, non una semplice pagina web. L'harness tenta il
percorso di contenuto e riporta onestamente se il parent ha risposto o se il confine
ha tenuto.
La primitiva esatta di divulgazione risiede nel bug 2022419, che è soggetto a restrizioni di sicurezza. Questo harness dimostra la raggiungibilità di un gestore riservato ai test che una build corretta blocca. Passa la chiamata precisa usata nel tuo report con
--message.
Un processo di contenuto che un attaccante influenza già (un compromesso del renderer o un percorso di codice lato contenuto) invia un messaggio dell'actor FormAutofill che dovrebbe provenire soltanto dall'harness di test. Su una build vulnerabile il parent risponde. Su una build corretta il controllo di automazione lo scarta.
https://ftp.mozilla.org/pub/firefox/releases/140.9.0esr/.pip install marionette-driver
Avvia la build vulnerabile con un profilo nuovo e Marionette abilitato:
/path/to/firefox --marionette --no-remote --profile ./poc-profile about:blank
Poi in about:preferences#privacy aggiungi un indirizzo salvato sintetico e una carta sintetica, ad esempio nome POC TESTER, numero carta 4111 1111 1111 1111. Questi sono solo dati di test.
python3 poc.py # default handler and 127.0.0.1:2828
python3 poc.py --help # options
python3 poc.py --message FormAutofill:SaveAddress
getActor è disponibile solo in chrome, quindi dal content sandbox l'harness semplice segnala
l'actor come irraggiungibile (vedi poc-run.png). Per pilotare il messaggio da un contesto
che possiede effettivamente l'actor, su una build vulnerabile abilitare il Browser
Toolbox (devtools.chrome.enabled e devtools.debugger.remote-enabled), aprirlo con Ctrl+Alt+Shift+I e, dalla console del content-process, recuperare l'actor
da windowGlobalChild e chiamare sendQuery con lo stesso payload sintetico.
Questo rispecchia il modello di minaccia del content-process compromesso senza alcun dato reale.
undefined perché Cu.isInAutomation è false. Lo script segnala che il
gate è applicato.Questo harness è stato scritto a partire dal registro pubblico e dal sorgente
attuale di mozilla-central. È stato eseguito qui contro la build locale di Firefox 140.11.0esr,
che è già corretta per CVE-2026-6765. L'esecuzione catturata è in
poc-run.png: dal contesto content l'actor FormAutofill non è raggiungibile
(windowGlobalChild.getActor non è esposto al content), quindi il confine del parent
regge. Questo è il risultato corretto e onesto su una build corretta.
Per osservare il superamento del confine serve una build vulnerabile (Firefox
precedente alla 150 o ESR precedente alla 140.10, ad esempio 140.9.0esr) più un profilo usa e getta
inizializzato con dati autofill sintetici, e si pilota il messaggio dell'actor da un
contesto del content-process secondo il fallback browser-toolbox sopra descritto. Adattare
--message alla primitiva esatta del report originale.
Questo prende di mira una build scaricata localmente con dati sintetici per un writeup del CVE segnalato dall'autore stesso e già corretto. Non attacca alcun servizio live o di terze parti.