ywh-jfellus/CVE-2026-9198
GitHub: ywh-jfellus/CVE-2026-9198
针对 IBM Langflow 自动登录绕过导致的未经身份验证远程代码执行漏洞(CVE-2026-9198)的教育性 PoC,附带漏洞与修复版本的对照实验环境。
Stars: 0 | Forks: 0
# CVE-2026-9198 - IBM Langflow 通过自动登录绕过实现的未经身份验证的 RCE(教育性 PoC)
此仓库提供了针对影响 IBM Langflow OSS 的 **CVE-2026-9198** 的**教育性概念验证**。
该 PoC (`poc.py`) 演示了未经身份验证的攻击者如何将以下请求进行链式组合:
1. `GET/POST /api/v1/auto_login`(当启用自动登录时返回超级用户 token),以及
2. `POST /api/v1/validate/code`(执行受攻击者控制的 Python 代码)
从而实现远程代码执行。
## 免责声明
此代码和提供的 Docker 环境仅用于**本地安全测试和教育**。
请勿在您不拥有或未获得明确测试许可的系统上运行。
## 仓库布局
```
.
├── poc.py
├── vulnerable/docker-compose.yaml
└── patched/docker-compose.yaml
```
- `poc.py`:漏洞利用 PoC。
- `vulnerable/docker-compose.yaml`:使用 `langflowai/langflow:1.10.0`(存在漏洞)的实验室环境。
- `patched/docker-compose.yaml`:使用 `langflowai/langflow:1.10.1`(已修复行为目标)的实验室环境。
这两个 compose 文件被特意配置为在 `http://127.0.0.1:9999` 上**测试 `poc.py`** 的**实验环境**。
## 前置条件
- Docker + Docker Compose
- Python 3.8+
- Python 包:
```
pip install requests
```
## 运行存在漏洞的实验环境
启动存在漏洞的环境:
```
docker compose -f vulnerable/docker-compose.yaml up -d
```
运行 PoC:
```
python3 poc.py
```
预期的漏洞利用结果将包含一行红色的 `[!]` 提示,以及类似以下的命令输出:
```
[!] /api/v1/auto_login is vulnerable: uid=... gid=...
```
## 运行已修复的实验环境
首先停止存在漏洞的环境(如果正在运行):
```
docker compose -f vulnerable/docker-compose.yaml down -v
```
启动已修复的环境:
```
docker compose -f patched/docker-compose.yaml up -d
```
运行相同的 PoC:
```
python3 poc.py
```
预期的已修复结果是一行绿色的 `[-]` 提示,表明漏洞利用链已无法成功执行。
## PoC 配置
在 `poc.py` 中:
- `URL` 默认为 `http://127.0.0.1:9999`
- `CMD` 默认为 `id`
如果您需要测试不同的本地目标或命令,请调整这些常量。
## 参考
- https://nvd.nist.gov/vuln/detail/CVE-2026-9198
- https://www.ibm.com/support/pages/node/7278927
- 灵感来源于 https://github.com/0xdak/CVE-2026-9198_exploit
标签:Docker, PoC, Web报告查看器, 安全, 安全防御评估, 暴力破解, 版权保护, 编程工具, 请求拦截, 超时处理, 远程代码执行, 逆向工具