romain-deperne/vulnhunter-harness
GitHub: romain-deperne/vulnhunter-harness
一个以 LLM-agent 编排为核心的进攻性安全研究框架,通过大规模源代码审查、自动化 PoC 验证与协调披露流程实现 AI 辅助漏洞挖掘。
Stars: 0 | Forks: 0
# VulnHunter — 一个 AI 驱动的进攻性安全研究框架
我构建并运营着一个**用于大规模进攻性安全的 LLM-agent 框架**:这是一个经过编排的 agent 集群,能够阅读源代码、提出漏洞假设、编写并*运行* PoC 来确认它们、消除误报,并提交协调披露报告 —— 在每个具有破坏性的操作中都有人类参与。LLM 是核心引擎,而不是围绕扫描仪的 API 包装器。这正是 AI 原生的进攻性安全团队必须*构建、引导并与人类渗透测试人员进行基准测试*的那类系统。这个仓库展示了我对这个问题的思考。
## 为什么会有这个项目
基于模式的漏洞类别(注入、补丁修复不完整的绕过、SSRF、反序列化、路径遍历、对外部输入执行 eval)在数千个项目中反复出现的速度,远超人类审计的能力。这里的杠杆作用不在于“一个能找 bug 的 AI”,而是一个**由操作者引导的框架**:
- 由人类编码*判断力*(哪些模式、哪些目标、什么才算作证据、什么是越界的),
- 由 agent 提供*吞吐量*(阅读 300 多个代码库、进行分类筛选、并行编写 PoC),
- 并且每一个结论都**通过实际执行来验证**,而不是由模型断言。
这种分工 —— 以及衡量自动化在何处胜过或逊色于人类 —— 才是核心关键。
## 架构
```
Operator (human-in-the-loop)
│
▼
LLM engine ◄──► Knowledge base (vuln-pattern tiers, lessons, target tracker)
│
├── Exegol MCP — 200+ offensive tools in containers
├── Playwright MCP — browser automation, evidence capture, submissions
├── VPS / SSH MCP — clean egress + remote infra
│
├── Agents — scanner · triager · exploiter · reporter · recon · fuzzer · chain
├── Hooks — scope-enforce · rate-limit · safety-gate · evidence-log · dedup
└── Templates— per-platform report routing (GHSA / MITRE / MSRC / Wordfence / huntr …)
```
## 运行模式
| 模式 | 用途 | 核心优势 |
|------|---------|---------------|
| `cve-hunt` | 大规模审查 OSS 源代码以寻找未报告的 CVE | 大规模的模式优先扫描 |
| `bounty` | 实时漏洞赏金 (HackerOne / YWH / Intigriti …) | 范围防护、速率限制、提供证据的能力 |
| `pentest` | 授权的测试任务 | 基于 Exegol 工具的完整 kill chain |
| `reverse` | 二进制分析、模糊测试、崩溃分类 | AFL++, rr, CodeQL/Semgrep |
| `0day` | 定向研究 | 变体分析、diff 审计、协议模糊测试 |
## 发现 → 证明 → 披露 循环
每一项发现都会经过相同的流水线,并且**在没有重现 PoC 的情况下绝对不会报告任何内容**:
1. **扫描** — agent 阅读源代码以寻找按优先级排序的漏洞模式,并按语言和组件进行标记。
2. **分类** — 独立的 agent 会对每个候选项进行对抗性质疑,以消除误报。
3. **利用** — 利用程序编写独立的 PoC,并针对真实的目标/服务*运行它*。
4. **报告** — 从模板库路由到正确的披露渠道。
5. **追踪** — 与之前的提交进行去重;证据在收集时即进行哈希处理并加上时间戳。
## 漏洞模式分级 (节选)
知识库根据历史命中率对类别进行排名,以便扫描将时间花在有所回报的地方:
| 等级 | 模式 | 典型生态系统 |
|------|---------|--------------------|
| 0 | **MCP 工具参数注入** (SQL / shell / path) | 生态系统中的各类 MCP server |
| 1 | f-string SQL / Cypher / 表达式注入 | mem0, LangChain, LlamaIndex |
| 2 | 补丁修复不完整的绕过 (审查补丁的*另一个*方向) | 许多 |
| 3 | DevOps / CI / 服务基础设施中的命令注入 | CapRover, KubeAI, CyberPanel |
| 4 | 无验证的 SSRF | RAGFlow, Cal.com, Budibase |
| 9 | 对外部数据使用 `eval()` / `exec()` | MetaGPT, lmdeploy, FreeCAD |
## 安全模型
- **范围强制执行是不可绕过的** — pre-tool hook 会阻止任何超出范围的目标。
- 破坏性命令需要操作者的明确确认。
- 自动对每个目标强制执行速率限制。
- 所有证据在收集时均进行 SHA256 哈希处理并加上时间戳(清晰的披露追踪记录)。
- 在设计上保证了环中有人参与。
## 记录 (公开、可验证)
- 分配给 [`romain-deperne`](https://github.com/advisories?query=credit%3Aromain-deperne) 的 **40 多个 CVE ID**
- 在 GHSA、MITRE、MSRC、huntr、Wordfence、Patchstack 提交了 **200 多份**漏洞报告
- 审计了 **300 多个**项目;影响力覆盖 AI/LLM 生态系统(LangChain、LlamaIndex、mem0、RAGFlow、MCP SDK、KubeAI、Dagster、JupyterHub …)
已重现并公开的示例(每个仓库中都有完整的分析报告 + PoC):
| CVE | 目标 | 类别 | CVSS |
|-----|--------|-------|:----:|
| [CVE-2026-27825](https://github.com/romain-deperne/CVE-2026-27825) | mcp-atlassian | 路径遍历 | 9.3 |
| [CVE-2026-48017](https://github.com/romain-deperne/CVE-2026-48017) | DbGate | RCE | 8.8 |
| [CVE-2026-33980](https://github.com/romain-deperne/CVE-2026-33980) | adx-mcp-server | KQL 注入 | 8.8 |
| [CVE-2026-34940](https://github.com/romain-deperne/CVE-2026-34940) | KubeAI | 命令注入 | 8.7 |
| [CVE-2026-41490](https://github.com/romain-deperne/CVE-2026-41490) | Dagster | SQL 注入 | High |
| [CVE-2026-32247](https://github.com/romain-deperne/CVE-2026-32247) | graphiti-core | Cypher 注入 | 8.1 |
*由 [Romain Deperne](https://github.com/romain-deperne) 构建并运营 — 进攻性安全、AppSec 与源代码审查、AI 辅助的漏洞研究。*
标签:AI智能体, CISA项目, LLM编排, Maven, 内存分配, 漏洞验证, 特征检测, 自动化漏洞挖掘, 请求拦截, 逆向工具