CVE ID: CVE-2025-58434
受影响软件: Flowise AI
受影响版本: <= 3.0.5
修复版本: 3.0.6 及更高版本
严重程度: 严重
作者: arensballiu
日期: 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 仅通过注册的电子邮件地址传输。此概念验证仅供教育和授权的安全研究目的使用。在未经明确书面许可的情况下对系统使用此脚本是非法的且不道德的。作者和贡献者对滥用不承担任何责任。