Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-bench — 一个用于评估AI代理修复真实世界安全漏洞能力的基准测试。 | Kitploit
工具/GitHubGitHub/giovannigatti/cve-bench
静态分析动态分析 (沙盒)漏洞分析代码分析渗透测试DevSecOps机器学习学习与教育AI 安全
GitHubgiovannigatti/cve-bench

cve-bench

一个用于评估AI代理修复真实世界安全漏洞能力的基准测试。

查看仓库
142个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-Bench

Blog Harness Coverage

一个用于评估LLM智能体在修复真实世界安全漏洞方面表现的基准测试。智能体在沙盒化的Docker容器中运行,并根据维护者的安全测试套件进行评分。


要求

  • Python 3.12+
  • Docker
  • 在环境中(或.env文件中)设置OPENAI_API_KEY、ANTHROPIC_API_KEY和/或POOLSIDE_API_KEY

安装依赖项:

root@kitploit:~
pip install poetry
poetry install

任务结构

每个任务位于tasks/{CVE-ID}/目录下,包含以下内容:

root@kitploit:~
tasks/CVE-2026-33175/
├── meta.json           # GHSA ID, CWE, CVSS, 仓库URL, 漏洞版本和修复版本的SHA
├── setup.sh            # 克隆仓库,检出漏洞版本SHA,安装依赖
├── run_tests.sh        # 将test_security.py注入仓库并运行pytest
├── test_security.py    # 安全测试(对漏洞代码预期失败,对修复版本通过)
├── advisory.md         # 完整GHSA安全公告(最丰富的提示)
├── diagnose.md         # 仅行为描述——不包含文件名或函数名
├── locate.md           # 仅文件和函数——不包含漏洞描述
└── Dockerfile          # 可选;仅在任务需要额外系统依赖时存在

meta.json示例:

root@kitploit:~
{
  "ghsa_id": "GHSA-xxxx-xxxx-xxxx",
  "cwe": ["CWE-287"],
  "cvss": 9.1,
  "repo": {
    "url": "https://github.com/org/project",
    "vulnerable_sha": "abc123^",
    "fixed_sha": "abc123"
  }
}

setup.sh是幂等的,可以安全地重新运行。test_security.py在运行期间对智能体保持隐藏,仅在智能体完成工作后注入。


构建Docker镜像

root@kitploit:~
python build.py

这将构建:

  1. 一个共享基础镜像(cve-bench/base)——包含Python 3.12、git、poetry和测试框架。
  2. 每个任务一个任务镜像(cve-bench/{task-id})——基于基础镜像,复制任务目录并运行setup.sh。

选项:

root@kitploit:~
# 仅构建特定任务
python build.py --task CVE-2026-33175 CVE-2026-42561

# 跳过重新构建基础镜像
python build.py --skip-base

任务镜像并行构建(最多5个工作进程)。如果任务目录包含Dockerfile,则使用该文件代替通用的docker/task.Dockerfile。


验证任务

在运行基准测试之前,请验证每个任务的安全测试能否正确区分漏洞代码和修复后的代码:

root@kitploit:~
python validate.py

对于每个任务,此命令在任务容器内执行三个阶段:

阶段检查内容
vulnerable(漏洞版本)安全测试必须在漏洞SHA上失败(或预期失败)
fixed(修复版本)安全测试必须在修复SHA上通过
regression(回归测试)非安全测试必须在修复SHA上通过

结果以实时表格形式显示。如果任何任务的任何阶段失败,退出码为1。

root@kitploit:~
# 仅验证特定任务
python validate.py --task CVE-2026-33175 GHSA-r758-8hxw-4845

# 跳过验证前重新构建镜像
python validate.py --skip-build

运行基准测试

root@kitploit:~
python benchmark.py --model openai:gpt-5.5 poolside:laguna-m.1 --prompt-type advisory

选项:

支持的提供商:

每次运行都会在results/目录下生成一个JSON结果文件:

root@kitploit:~
results/{task-id}__{provider}:{model}__{prompt-type}.json

现有结果文件会自动跳过。运行并发执行(最多20个工作进程),每个提供商有速率限制(每个提供商一次仅一个活跃请求),以避免429错误。


结果格式

每个结果文件是一个具有以下结构的JSON对象:

root@kitploit:~
{
  "cve_id": "CVE-2026-33175",
  "model_id": "openai:gpt-5.5",
  "prompt_type": "advisory",
  "timestamp": "2026-05-01T12:00:00",
  "model_duration_s": 142.3,
  "test_duration_s": 8.1,
  "turns": [
    {
      "tool_calls_and_results": [...],
      "input_tokens": 12400,
      "output_tokens": 310
    }
  ],
  "tests": [
    {
      "kind": "security",
      "name": "test_email_verified",
      "outcome": "passed"
    }
  ]
}

tests[].kind要么是"security"(来自test_security.py),要么是"regression"(来自项目自身的测试套件)。仅当所有安全测试都通过且没有回归测试失败时,才认为该次运行成功解决。


生成图表

root@kitploit:~
python generate_charts.py

读取results/目录下的所有结果文件,并将SVG图表写入docs/images/charts/。需要Chrome/Chromium以支持Bokeh的无头导出(通过chromedriver-binary)。


测试框架架构

测试框架在每个Docker容器内以python -m harness.run的形式运行。它负责加载提示、运行智能体循环并写入结果文件。

root@kitploit:~
src/harness/
├── run.py                  # 入口点;解析参数,连接组件,调用BenchmarkRunner
├── client/
│   ├── factory.py          # 解析provider:model-id,返回对应的LLMClient
│   ├── _client.py          # 抽象LLMClient,ToolCall和LLMTurn数据类
│   ├── anthropic.py        # Anthropic SDK集成
│   └── oai.py              # OpenAI SDK集成(也用于Poolside)
├── agent/
│   ├── core.py             # 智能体循环:调用客户端,分发工具调用,线程消息
│   └── runner.py           # 包装Agent,跟踪时间和轮次列表
├── bench/
│   ├── runner.py           # 协调设置→智能体→安全测试→回归测试
│   ├── result.py           # BenchmarkResult和TestResult数据类,JSON序列化
│   └── repository.py       # 将结果文件写入磁盘
└── task/
    ├── tools.py             # 工具实现:ListFiles, ReadFile, SearchInFiles,
    │                        #   EditFile, CreateFile, DeleteFile, RunPytest
    └── prompt_loader.py     # 读取advisory.md / diagnose.md / locate.md

可供智能体使用的工具:

所有工具都会根据仓库根目录验证路径,以防止目录遍历。智能体无法访问test_security.py或git历史。

智能体循环最多运行20轮。如果达到轮次上限,则按原样记录运行,并仍然针对智能体离开仓库时的状态执行安全测试。


添加任务

  1. 创建tasks/{CVE-ID}/并添加meta.json、setup.sh、run_tests.sh、test_security.py、advisory.md、diagnose.md、locate.md。
  2. 使setup.sh和run_tests.sh可执行(chmod +x)。
  3. 验证:python validate.py --task {CVE-ID}。
  4. 构建:python build.py --task {CVE-ID}。

披露

这项工作作为独立研究进行。在进行研究和准备本仓库时,我没有机构隶属关系。


引用本文

root@kitploit:~
@misc{gattipinheiro2026cvebench,
  author       = {Gatti Pinheiro, Giovanni},
  title        = {{CVE-Bench}: Benchmarking {LLM} Agents on Real-World Security Vulnerability Fixes},
  year         = {2026},
  howpublished = {\url{https://giovannigatti.github.io/cve-bench}},
  note         = {Code available at \url{https://github.com/GiovanniGatti/cve-bench}}
}

许可证

MIT — 参见 LICENSE。

下载工具
标志描述默认值
--model一个或多个provider:model-id字符串所有已配置的模型
--prompt-typeadvisory、diagnose、locate或任意组合全部三种
--task一个或多个任务ID所有任务
--clean在启动前删除所选范围内的现有结果关闭
提供商格式API密钥环境变量
OpenAIopenai:gpt-5.5OPENAI_API_KEY
Anthropicanthropic:claude-haiku-4-5-20251001ANTHROPIC_API_KEY
Poolsidepoolside:laguna-m.1POOLSIDE_API_KEY
工具描述
list_files列出仓库中的文件和目录
read_file读取文件内容,可选择行范围
search_in_files跨代码库进行正则搜索,可选文件通配符
edit_file替换现有文件中的行范围
create_file创建新文件
delete_file删除文件
run_pytest运行项目的测试套件;返回JSON报告