来源笔记

EvoRepair: Enhancing Vulnerability Repair Agents Through Experience-Based Self-Evolution

Automated Vulnerability RepairCode AgentsLLM Self EvolutionSoftware SecurityExperience Retrieval

EvoRepair 是一种用于自动化漏洞修复的 LLM 智能体方法,它从过去的修复尝试中学习可复用的修复经验,并把这些经验用于后续修复。在使用 GPT-5-mini 的 PATCHEVAL 和 SEC-bench 上,它的修复成功率高于 12 个 AVR 基线。

  • LLM 修复智能体常把每个 CVE 都当作一个新任务,因此会重复失败的修改,也会漏掉在相关 CWE/CVE 案例中见过的修复方法。
  • 这很重要,因为 2024 年报告的 CVE 已达到 38,942 个,而人工修复或孤立修复无法应对这个规模。
  • 现有检索方法使用静态示例或补丁,但 AVR 需要在每次成功或失败后更新修复规则。
  • EvoRepair 运行一个循环式 learn-and-repair 流程:检索相关经验、在 Docker 中尝试补丁、总结轨迹、给新经验打分,并更新经验库。
  • 每条经验记录包含漏洞分析、修复策略、轨迹分析、可复用规则和后续备注。
  • 检索会按 CVE/CWE 选出最相似的前 M 条经验,再用相似度和经验分数重排序,并把前 K 条写入智能体记忆。
  • 基础智能体使用 ReAct 风格的 shell 交互、最少的 Bash 工具、预定义修复技能、测试反馈,以及基于 turn-level yield rate 的早停策略。
  • 新经验由 LLM judge 按质量和泛化性打分,并通过重复打分和与人工评分对比;同一漏洞上分数较低的更新可以被丢弃。
  • 在 PATCHEVAL 上,EvoRepair 使用 GPT-5-mini 达到 93.47%,比 LoopRepair 高 39.56%,比 IntentFix 高 70.86%。
  • 在 SEC-bench 上,EvoRepair 达到 87.00%,比 LoopRepair 高 33.50%,比 IntentFix 高 50.50%。
  • 在 PATCHEVAL 和 SEC-bench 上,EvoRepair 的整体表现为 90.46%。
  • 在两个基准上,EvoRepair 的整体表现比 Live-SWE-Agent 高 6.98%。
  • 报告称,VUL4J 上的迁移实验可以跨数据集、编程语言和模型骨干运行;摘要片段没有给出 VUL4J 的具体指标值。