---
source: arxiv
url: https://arxiv.org/abs/2605.17450v1
published_at: '2026-05-17T13:48:25'
authors:
- Simiao Liu
- Fang Liu
- Li Zhang
- Yang Liu
- Yinghao Zhu
topics:
- automated-vulnerability-repair
- code-intelligence
- llm-agents
- multi-agent-software-engineering
- runtime-analysis
- software-security
relevance_score: 0.93
run_id: materialize-outputs
language_code: zh-CN
---

# ContraFix: Agentic Vulnerability Repair via Differential Runtime Evidence and Skill Reuse

## Summary
## 摘要
ContraFix 是一个用于自动化漏洞修复的多智能体系统，它使用成对的崩溃执行和安全执行来推断补丁必须满足的条件。它还会保存成功的修复规格和输入变异策略，供后续漏洞复用。

## 问题
- LLM 修复代理常常修补崩溃报告里显示的症状，而不是根因，因为一次失败执行只能说明程序在哪里出错，不能说明故障点附近哪个变量或状态转移导致了问题。
- 这在真实代码仓库里影响很大：修复方向选错后，代码可能能编译，却没有修好漏洞，或者把崩溃转移到别的位置。
- 现有代理通常会在每个案例后丢掉有用证据，所以相似漏洞必须重新做变异、探测和诊断。

## 方法
- Mutator 会生成接近原始输入的 PoC 变体，然后把它们分成会崩溃和不会崩溃两组。
- Analyzer 会在故障位置附近插入运行时探针，运行两组样本，并比较记录下来的状态值，找出哪些变量把不安全执行和安全执行区分开。
- Analyzer 会写出一份修复规格，包含源码位置和安全条件，例如在 `argc` 到达边界时，先扩展 VM 栈，再访问 `regs[]`。
- Patcher 会把这份规格转成源码修改，只有在补丁能编译，并且在原始 PoC 和崩溃变体上重新执行都通过时才接受。
- 一个双轨技能库会记录已验证的修复规格和成功的变异策略；检索时先找同仓库匹配，再找同漏洞类型匹配，最后根据净化器报告做嵌入相似度匹配。

## 结果
- 在 SEC-Bench 上，这个基准包含 200 个 C/C++ CVE 实例，使用 GPT-5-mini 的 ContraFix 解决了 84.0% 的任务。
- 在 PatchEval 上，排除 5 个 Docker 失败后，使用 225 个 Go、Python 和 JavaScript 实例，ContraFix 解决了 73.8% 的任务。
- 论文称，它在 SEC-Bench 和 PatchEval 上都取得了已报告的最佳结果，同时每个任务的成本不到最强可比基线的三分之一。
- 在使用相同 GPT-5-mini 主干的 SEC-Bench 上，ContraFix 比 AgentMem 高 34 个百分点。
- 消融实验显示，基于对比的运行时分析带来 27.0 个百分点提升，技能积累带来 9.0 个百分点提升。
- ContraFix 修复了 25 个 SEC-Bench 实例，这些实例没有任何现有对比方法能修复。

## Problem

## Approach

## Results

## Link
- [https://arxiv.org/abs/2605.17450v1](https://arxiv.org/abs/2605.17450v1)
