CVE-2025-58434

9.8 CRITICAL

📋 TL;DR

This vulnerability in Flowise allows unauthenticated attackers to generate password reset tokens for any user account, leading to complete account takeover. It affects both cloud-hosted and self-hosted deployments of Flowise version 3.0.5 and earlier. Attackers can directly reset passwords without any authentication or verification.

💻 Affected Systems

Products:
  • Flowise
Versions: 3.0.5 and earlier
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects both cloud service (cloud.flowiseai.com) and self-hosted/local deployments exposing the same API endpoints.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of all user accounts, including administrative accounts, leading to full system control, data theft, and potential lateral movement in connected systems.

🟠

Likely Case

Account takeover of regular users leading to unauthorized access to sensitive LLM flows, data exfiltration, and potential privilege escalation.

🟢

If Mitigated

Failed password reset attempts logged for investigation, with no successful account takeovers due to proper token validation and secure delivery mechanisms.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Simple HTTP request to forgot-password endpoint with any email address returns sensitive reset token without authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.0.6

Vendor Advisory: https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-wgpv-6j63-x5ph

Restart Required: Yes

Instructions:

1. Update Flowise to version 3.0.6 or later. 2. Apply commit 9e178d68873eb876073846433a596590d3d9c863. 3. Restart the Flowise service.

🔧 Temporary Workarounds

Disable forgot-password endpoint

all

Temporarily disable the vulnerable forgot-password API endpoint until patching is possible

Modify API routing to block /api/v1/auth/forgot-password endpoint

Network-level blocking

all

Block access to the forgot-password endpoint at firewall/load balancer level

Add rule to block requests to */forgot-password

🧯 If You Can't Patch

  • Implement WAF rules to block requests containing sensitive token responses from forgot-password endpoint
  • Enable detailed logging and monitoring of all password reset attempts with alerting for suspicious patterns

🔍 How to Verify

Check if Vulnerable:

Send POST request to /api/v1/auth/forgot-password with any email address. If response contains tempToken or sensitive account details, system is vulnerable.

Check Version:

Check package.json for version or run: npm list flowise

Verify Fix Applied:

After update, same request should return only generic success message without any tokens or sensitive information.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed password reset attempts from single IP
  • Password reset requests for non-existent users
  • Unusual patterns in auth logs

Network Indicators:

  • HTTP POST requests to /forgot-password endpoint followed by immediate password reset attempts
  • Unusual traffic spikes to authentication endpoints

SIEM Query:

source="flowise" AND (uri_path="/api/v1/auth/forgot-password" OR event="password_reset") | stats count by src_ip, user

🔗 References

📤 Share & Export