
Unauthentifizierter Passwort-Reset-Exploit für Flowise AI ≤ 3.0.5. Missbraucht den Endpunkt /api/v1/account/forgot-password, um das Passwort eines beliebigen Benutzers ohne vorherige Authentifizierung zu ändern. Enthält ein Proof-of-Concept-Skript und Richtlinien zur Risikominderung.
CVE-ID: CVE-2025-58434
Betroffene Software: Flowise AI
Verwundbare Versionen: <= 3.0.5
Behobene Version: 3.0.6 und später
Schweregrad: Kritisch
Autor: arensballiu
Datum: 2025
Flowise AI-Versionen bis einschließlich 3.0.5 enthalten eine Schwachstelle bei der Authentifizierung im Passwort-Reset-Ablauf. Der Endpunkt /api/v1/account/forgot-password gibt ein temporäres Reset-Token (tempToken) direkt in seiner API-Antwort zurück, ohne dass eine vorherige Authentifizierung oder E-Mail-Verifizierung erforderlich ist.
Ein nicht authentifizierter Angreifer, der eine gültige E-Mail-Adresse kennt (oder aufzählen kann), kann:
tempToken direkt aus der API-Antwort extrahieren.Diese Schwachstelle umgeht den vorgesehenen E-Mail-basierten Verifizierungsablauf vollständig, da das Token in der HTTP-Antwort preisgegeben wird, anstatt nur an das E-Mail-Postfach des Kontoinhabers gesendet zu werden.
| Endpunkt | Methode | Zweck |
|---|---|---|
/api/v1/auth/login | POST | Wird verwendet, um zu prüfen, ob ein E-Mail-Konto existiert |
/api/v1/account/forgot-password | POST | Löst den Reset aus und gibt tempToken in der Antwort preis |
/api/v1/account/reset-password | POST | Schließt die Passwortänderung mit dem Token ab |
Datei: CVE-2025-58434_POC.py
requests-Bibliothekpip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
| Flag | Langform | Erforderlich | Beschreibung |
|---|---|---|---|
-e | --email | Ja | E-Mail-Adresse des Zielkontos |
-u | --url | Ja | Basis-URL der Flowise-Instanz |
-p | --password | Nein | Neues zu setzendes Passwort (Standard: password) |
python3 CVE-2025-58434_POC.py -e [email protected] -u https://flowise.example.com -p P@ssw0rd!
[+] Email [email protected] exists!
[!] Sending forgot password request
[!] Sending reset password request
[+] Password Changed Successfully to: P@ssw0rd!
Die Passwort-Reset-API wurde so konzipiert, dass das tempToken an die E-Mail des Benutzers gesendet wird, aber der Server fügte es auch direkt in den JSON-Antwortkörper ein. Das bedeutet, dass jeder Aufrufer, ob authentifiziert oder nicht, das Token sofort nach der Anfrage erhält, wodurch der E-Mail-Zustellungsschritt irrelevant wird.
Darüber hinaus ist die E-Mail-Aufzählung möglich, weil der Login-Endpunkt eine eindeutige Fehlermeldung ("Incorrect Email or Password") nur dann zurückgibt, wenn die E-Mail existiert, was es trivial macht, gültige Konten zu bestätigen, bevor der Angriff gestartet wird.
tempToken ausschließlich über die registrierte E-Mail-Adresse übermittelt wird.Dieses Proof of Concept wird ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung bereitgestellt. Die Verwendung dieses Skripts gegen Systeme ohne ausdrückliche schriftliche Genehmigung ist illegal und unethisch. Der Autor und die Mitwirkenden übernehmen keine Haftung für Missbrauch.