安全软件
点击放大

!CVE-1
!CVE-2
!CVSS
!Python
!License
> ⚠️ For educational and authorized security research only.
> Running this tool against systems you do not own or lack written permission to test is illegal.
---
---
This repository combines two critical in Flowise into a single, modular PoC tool.
| | C | C |
|---|---|---|
| Type | Account Takeover | Remote Code Execution |
| Auth Required | None | Yes (any valid account) |
| CVSS | 9.8 Critical | Critical |
| Affected | Cloud + Self-hosted | Self-hosted |
The two chain naturally: C provides unauthenticated account takeover, which satisfies the authentication requirement for C — achieving unauthenticated RCE in a single automated run.
---
Root Cause: The forgot-password endpoint returns the password reset token (tempToken) directly in the HTTP response body instead of sending it only .
Attack Steps:
1. POST /api/v1/account/forgot-password with any registered email
2. Read tempToken from the JSON response — no email access needed
3. POST /api/v1/account/reset-password with the leaked token → set a new password
4. Log in as the
Leaked response (trimmed):
---
Root Cause: The CustomMCP node passes user-supplied mcpSer directly to Ja's Function() constructor with no sanitization. Since Flowise runs in Node.js, injected code has full access to child_process, fs, and all Node.js built-ins.
code path:
Required headers:
Default injection payload (reverse shell):
> Note: Reverse shell payloads use cp.exec() (async / fire-and-forget) so the HTTP request returns immediately and the tool doesn't time out. Regular commands use cp.execSync() and return output inline.
---
---
| Component | Status |
|---|---|
| Flowise Cloud (cloud.flowiseai.com) | Affected by C |
| Flowise self-hosted (all prior to patch) | Affected by both CVEs |
Check the official Flowise security ad for patched release numbers.
---
---
requests library---
---
No mode flag is required. If you run the script without --chain or --module, it automatically runs in full chain mode. The default RCE payload is a reverse shell — just supply --lhost and --lport.
Start your listener before running:
---
---
Runs all four steps end-to-end: leak token → reset password → login → RCE.
---
Leak the tempToken and reset the account password. Stops before login/RCE.
---
Authenticate and extract the three session cookies for manual use.
---
Execute on the server. Auto-logins if --token is not given.
---
--chain)| Flag | Description |
|---|---|
| --chain | Full chain: ATO → Login → RCE |
| --module ato | Account takeover only |
| --module login | Login and extract cookies only |
| --module rce | RCE only |
| Flag | Short | Description | Required |
|---|---|---|---|
| --url | -u | Base URL of Flowise instance | Always |
| --email | -e | Target / login email | Always |
| Flag | Short | Description | Default |
|---|---|---|---|
| --new-password | -p | Password set on account after ATO | Flowise! |
| Flag | Short | Description |
|---|---|---|
| --login-password | -P | Password for login module / RCE auto-login |
| --token | — | Manually supply token cookie (skips login) |
| --refresh-token | — | Manually supply refreshToken cookie |
| --connect-sid | — | Manually supply connect.sid cookie |
| Flag | Short | Description | Default |
|---|---|---|---|
| --lhost | — | Attacker IP for reverse shell | — |
| --lport | — | Attacker port for reverse shell | — |
| --command | -c | Custom OS command (o re) | id if no lhost/lport |
| Flag | Short | Description | Default |
|---|---|---|---|
| --timeout | -t | HTTP timeout (seconds) | 15 |
| --json-output | -j | Print raw JSON responses | false |
---
The script automatically picks the right execution mode:
| Scenario | Payload used | HTTP behaviour |
|---|---|---|
| --lhost + --lport (no -c) | mkfifo netcat one-liner | cp.exec() — async, returns immediately |
| -c "..." containing nc/mkfifo/bash -i | detected as re | cp.exec() — async, returns immediately |
| -c "id" or any other normal command | user command | cp.execSync() — blocks, returns output |
| no -c, no --lhost | id | cp.execSync() — blocks, returns output |
Async execution means the HTTP request completes instantly — no timeout errors on reverse shell payloads.
---
---
tempToken only email.forgot-password endpoint.Function(), eval(), or ().mcpSer as data only (e.g., JSON.parse()) — ne it.---
| Date | Event |
|---|---|
| 2025-08-19 | C discovered and reported |
| TBD | C discovered and reported |
| TBD | acknowledgement |
| TBD | Patch released |
| TBD | Public disclosure |
---
---
For educational purposes and authorized penetration testing only.
See DISCLAIMER.md for the full legal notice.
开发语言:Python
Star 数:18
该项目属于安全软件方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Combined PoC for CVE-2025-28434 and CVE-2025-59528展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | CVE-2025-58434-AND-59528-POC - Combined PoC for CVE-2025-28434 and CVE-2025-59528 |
| 所属分类 | 安全软件 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 22:55:41 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 78 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |