
Prova de conceito de exploit para CVE-2026-25050, um ataque de temporização que permite enumeração de usuários via autenticação GraphQL. Mede os tempos de resposta para identificar contas existentes, facilitando ataques direcionados.
Este repositório contém uma Prova de Conceito demonstrando um ataque de timing que afeta o método NativeAuthenticationStrategy.authenticate().
Esta PoC é fornecida como uma demonstração técnica para fins de blog / pesquisa.
A lógica de autenticação retorna imediatamente quando um usuário não existe, enquanto realiza uma verificação de hash de senha custosa quando o usuário existe.
const user = await this.userService.getUserByEmailAddress(ctx, data.username);
if (!user) {
return false;
}
const passwordMatch = await this.verifyUserPassword(ctx, user.id, data.password);
Isso cria uma diferença de timing mensurável entre tentativas de autenticação para usuários existentes e não existentes.
Ao medir os tempos de resposta em múltiplas requisições, um atacante pode determinar de forma confiável se um nome de usuário (endereço de e-mail) existe.
Esta PoC realiza múltiplas tentativas de autenticação por nome de usuário e calcula o tempo médio de resposta para classificar contas como:
python3 exploit.py -u http://target.tld -w users.txt
A ferramenta anexa automaticamente o endpoint vulnerável:
/admin-api?languageCode=en
-u, --url URL base do alvo
-w, --wordlist Wordlist de nomes de usuário / e-mails
--silent Modo silencioso (progresso + apenas usuários válidos)
--shuffle Embaralhar wordlist antes do teste
--delay MIN:MAX Atraso aleatório entre requisições (ms)
--resume state.json Retomar uma varredura anterior
--json results.json Exportar resultados para JSON
--delay ajuda a evitar detecção e limitação de taxa.Esta prova de conceito é fornecida apenas para testes de segurança autorizados e fins educacionais. O autor não assume nenhuma responsabilidade pelo uso indevido.