桃子桃子快讯
返回首页
工具

AI 智能体修复漏洞基准 cve-bench 开源

开发者发布 cve-bench:用真实 CVE 评估 LLM 智能体修复安全漏洞能力的开源基准,支持 GPT-5.5、C…

2026.07.23 · 周四3 分钟阅读

cve-bench 是一个基于真实 CVE(公开安全漏洞)构建的 Python 安全基准,用于评估大语言模型驱动的智能体在修复开源项目安全漏洞任务上的能力。每个任务对应一个 CVE,智能体在沙箱化的 Docker 容器内运行,并依据维护者提供的安全测试套件进行打分。

任务结构与提示分级

每个 CVE 任务放在 tasks/{CVE-ID}/ 目录下,包含漏洞 SHA、修复 SHA、CWE 分类、CVSS 评分、对应的 GitHub 仓库以及三档不同详细程度的提示文件:

  • advisory.md:完整的 GHSA 安全公告,信息量最大
  • diagnose.md:仅描述行为异常,不透露文件或函数名
  • locate.md:仅给出涉及的文件与函数,不描述漏洞细节

基准运行时会将 test_security.py 对智能体隐藏,仅在智能体提交修复后再注入并执行;安全测试在漏洞 SHA 上必须失败(xfail),在修复 SHA 上必须通过。

镜像构建与任务验证

构建脚本 build.py 会先创建一个共享基础镜像 cve-bench/base(含 Python 3.12、git、poetry 和执行框架),再为每个任务并行构建独立的任务镜像 cve-bench/{task-id}(最多 5 个 worker)。验证脚本 validate.py 会跑三个阶段:

  • vulnerable:在漏洞 SHA 上安全测试必须失败
  • fixed:在修复 SHA 上安全测试必须通过
  • regression:在修复 SHA 上非安全测试仍需通过

任一阶段失败,验证退出码为 1。

运行与评分

通过 benchmark.py 选择模型与提示类型即可运行基准。当前支持的模型包括 OpenAI 的 gpt-5.5、Anthropic 的 claude-haiku-4-5-20251001 以及 Poolside 的 laguna-m.1,对应 API Key 分别为 OPENAI_API_KEYANTHROPIC_API_KEYPOOLSIDE_API_KEY。任务并发执行(最多 20 个 worker),并对每个 provider 做限流以避免触发 429。结果以 JSON 形式写入 results/ 目录,记录每轮的 token 消耗、工具调用情况以及安全/回归测试的通过状态。只有当全部安全测试通过且无回归测试失败时,任务才记为「已解决」。

智能体工具与扩展

智能体在容器内可调用 list_filesread_filesearch_in_filesedit_filecreate_filedelete_filerun_pytest 等工具,由 harness.run 主循环调度。仓库还附带基于 Bokeh 的图表生成脚本 generate_charts.py,需要 Chrome/Chromium 用作无头导出,可汇总所有运行结果。

作者以「Ask HN」形式发起讨论,希望社区推荐值得纳入基准的 CVE 列表,以丰富任务覆盖面。

信源