
Proof-of-Concept-Exploit für CVE-2026-25050, einen Timing-Angriff, der die Benutzeraufzählung über die GraphQL-Authentifizierung ermöglicht. Misst Antwortzeiten, um vorhandene Konten zu identifizieren, und erleichtert so gezielte Angriffe.
Dieses Repository enthält einen Proof of Concept, der einen Timing-Angriff auf die Methode NativeAuthenticationStrategy.authenticate() demonstriert.
Dieser PoC wird als technische Demonstration für Blog-/Forschungszwecke bereitgestellt.
Die Authentifizierungslogik gibt sofort zurück, wenn ein Benutzer nicht existiert, während sie bei vorhandenen Benutzern eine aufwändige Passwort-Hash-Überprüfung durchführt.
const user = await this.userService.getUserByEmailAddress(ctx, data.username);
if (!user) {
return false;
}
const passwordMatch = await this.verifyUserPassword(ctx, user.id, data.password);
Dadurch entsteht ein messbarer Zeitunterschied zwischen Authentifizierungsversuchen für vorhandene und nicht vorhandene Benutzer.
Durch die Messung der Antwortzeiten über mehrere Anfragen hinweg kann ein Angreifer zuverlässig feststellen, ob ein Benutzername (E-Mail-Adresse) existiert.
Dieser PoC führt mehrere Authentifizierungsversuche pro Benutzername durch und berechnet die durchschnittliche Antwortzeit, um Konten wie folgt zu klassifizieren:
python3 exploit.py -u http://target.tld -w users.txt
Das Tool hängt automatisch den verwundbaren Endpunkt an:
/admin-api?languageCode=en
-u, --url Basis-URL des Ziels
-w, --wordlist Wortliste mit Benutzernamen / E-Mail-Adressen
--silent Stiller Modus (nur Fortschritt + gültige Benutzer)
--shuffle Wortliste vor dem Test mischen
--delay MIN:MAX Zufällige Verzögerung zwischen Anfragen (ms)
--resume state.json Vorherigen Scan fortsetzen
--json results.json Ergebnisse als JSON exportieren
--delay hilft, Erkennung und Rate-Limiting zu vermeiden.Dieser Proof of Concept wird ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt. Der Autor übernimmt keine Verantwortung für Missbrauch.