
Proof-of-concept exploit per CVE-2026-25050, un attacco di tipo timing attack che consente l'enumerazione degli utenti tramite l'autenticazione GraphQL. Misura i tempi di risposta per identificare account esistenti, facilitando attacchi mirati.
Questo repository contiene una Proof of Concept che dimostra un attacco basato sul timing che interessa il metodo NativeAuthenticationStrategy.authenticate().
Questa PoC è fornita come dimostrazione tecnica per scopi di blog / ricerca.
La logica di autenticazione restituisce immediatamente un risultato quando un utente non esiste, mentre esegue una costosa verifica dell'hash della password quando l'utente esiste.
const user = await this.userService.getUserByEmailAddress(ctx, data.username);
if (!user) {
return false;
}
const passwordMatch = await this.verifyUserPassword(ctx, user.id, data.password);
Questo crea una differenza di timing misurabile tra i tentativi di autenticazione per utenti esistenti e non esistenti.
Misurando i tempi di risposta su più richieste, un attaccante può determinare in modo affidabile se un nome utente (indirizzo email) esiste.
Questa PoC esegue più tentativi di autenticazione per ogni nome utente e calcola il tempo di risposta medio per classificare gli account come:
python3 exploit.py -u http://target.tld -w users.txt
Lo strumento aggiunge automaticamente l'endpoint vulnerabile:
/admin-api?languageCode=en
-u, --url URL di destinazione di base
-w, --wordlist Wordlist di nomi utente / email
--silent Modalità silenziosa (solo avanzamento + utenti validi)
--shuffle Mischia la wordlist prima del test
--delay MIN:MAX Ritardo casuale tra le richieste (ms)
--resume state.json Riprende una scansione precedente
--json results.json Esporta i risultati in JSON
--delay aiuta a evitare il rilevamento e il rate-limiting.Questa proof of concept è fornita esclusivamente per test di sicurezza autorizzati e scopi educativi. L'autore non si assume alcuna responsabilità per un uso improprio.