
Unauthenticated password reset exploit for Flowise AI ≤ 3.0.5. Abuses the /api/v1/account/forgot-password endpoint to change any user's password without prior authentication. Includes a proof-of-concept script and mitigation guidelines.
CVE ID: CVE-2025-58434
Affected Software: Flowise AI
Vulnerable Versions: <= 3.0.5
Fixed Version: 3.0.6 and later
Severity: Critical
Author: r3nsi15
Date: 2025
Flowise AI versions up to and including 3.0.5 contain a broken authentication flaw in the password reset flow. The /api/v1/account/forgot-password endpoint returns a temporary reset token (tempToken) directly in its API response without requiring any form of prior authentication or email verification.
An unauthenticated attacker who knows (or can enumerate) a valid email address can:
tempToken directly from the API response.This vulnerability bypasses the intended email-based verification flow entirely, as the token is leaked in the HTTP response rather than sent only to the account owner's email inbox.
File: CVE-2025-58434_POC.py
requests librarypip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_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!
The password reset API was designed to send the tempToken to the user's email, but the server also included it directly in the JSON response body. This means any caller — authenticated or not — receives the token immediately upon making the request, rendering the email delivery step irrelevant.
Additionally, the email enumeration is possible because the login endpoint returns a distinct error message ("Incorrect Email or Password") only when the email exists, making it trivial to confirm valid accounts before launching the attack.
tempToken is transmitted exclusively via the registered email address.This proof of concept is provided for educational and authorized security research purposes only. Use of this script against systems without explicit written permission is illegal and unethical. The author and contributors assume no liability for misuse.
| Endpoint | Method | Purpose |
|---|
/api/v1/auth/login | POST | Used to verify if an email account exists |
/api/v1/account/forgot-password | POST | Triggers reset and leaks tempToken in response |
/api/v1/account/reset-password | POST | Completes the password change using the token |
| Flag | Long Form | Required | Description |
|---|
-e | --email | Yes | Target account email address |
-u | --url | Yes | Base URL of the Flowise instance |
-p | --password | No | New password to set (defaults to password) |