来源笔记
EvoRepair: Enhancing Vulnerability Repair Agents Through Experience-Based Self-Evolution
摘要
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 的具体指标值。