
Nicht authentifizierter Passwortzurücksetzungs-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 Minderungsrichtlinien.
CVE-ID: CVE-2025-58434
Betroffene Software: Flowise AI
Verwundbare Versionen: <= 3.0.5
Behobene Version: 3.0.6 und höher
Schweregrad: Kritisch
Autor: r3nsi15
Datum: 2025
Flowise AI Versionen bis einschließlich 3.0.5 enthalten einen fehlerhaften Authentifizierungsmechanismus im Passwort-Reset-Ablauf. Der Endpunkt /api/v1/account/forgot-password gibt einen temporären 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 beabsichtigten E-Mail-basierten Verifizierungsablauf vollständig, da der 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 überprüfen, ob ein E-Mail-Konto vorhanden ist |
/api/v1/account/forgot-password | POST | Löst den Reset aus und gibt den 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 <ziel_email> -u <ziel_url> [-p <neues_passwort>]
| 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 entwickelt, um den tempToken an die E-Mail des Benutzers zu senden, aber der Server fügte ihn auch direkt in den JSON-Response-Body ein. Das bedeutet, dass jeder Aufrufer – authentifiziert oder nicht – den Token sofort nach dem Stellen der Anfrage erhält, was den E-Mail-Zustellungsschritt irrelevant macht.
Zusätzlich ist die E-Mail-Enumeration 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 Bildungs- und autorisierte Sicherheitsforschungszwecke 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.