---
source: arxiv
url: http://arxiv.org/abs/2603.06858v1
published_at: '2026-03-06T20:22:36'
authors:
- Zheng Yu
- Wenxuan Shi
- Xinqian Sun
- Zheyun Feng
- Meng Xu
- Xinyu Xing
topics:
- automated-vulnerability-repair
- patch-validation
- llm-for-code
- benchmark-dataset
- software-security
relevance_score: 0.9
run_id: materialize-outputs
language_code: zh-CN
---

# Patch Validation in Automated Vulnerability Repair

## Summary
本文指出，现有自动漏洞修复（AVR）研究常用的补丁验证方法会高估修复成功率，因为它们忽略了开发者随官方补丁新增的测试。作者提出用 PoC[+] 测试进行更严格验证，并构建了包含 209 个真实漏洞案例的 PVBench 基准来量化这一问题。

## Problem
- 现有 AVR 评测通常只检查：原有功能测试是否通过、PoC 是否不再触发漏洞；但这可能无法验证补丁是否符合开发者意图。
- 开发者在提交真实补丁时常会新增测试，这些测试不仅防止崩溃，还编码了**根因位置、正确修复策略、程序规范和风格约束**。
- 因此，若忽略这些新增测试，AVR 系统的“修复成功率”会被系统性高估，这会误导对 LLM 修复能力的判断。

## Approach
- 作者提出 **PoC[+] tests**：即开发者围绕官方补丁新增的测试，用它们替代或补充传统的“原测试集 + PoC”验证方式。
- 构建 **PVBench**：覆盖 **20 个开源项目、209 个漏洞案例、12 类 CWE**，每个案例同时包含基础测试（原功能测试 + PoC）和 PoC[+] 测试。
- 重新评估 3 个 SOTA AVR 系统：**PatchAgent、San2Patch、SWE-Agent**，比较“基础测试判定正确”和“PoC[+] 判定正确”之间的差异。
- 作者还按机制把 PoC[+] 测试分为三类：**output-checking、intermediate-checking、self-checking**，说明这些测试如何捕获更丰富的程序语义。
- 对通过/未通过 PoC[+] 的补丁做人工分析，归纳问题集中在 **root-cause analysis、program specification adherence、developer intention capture** 三方面。

## Results
- 作者发布了 **PVBench**，包含 **209** 个真实漏洞案例，来自 **20** 个项目，覆盖 **12** 类 CWE；其中如 **CWE-476 52 个、CWE-617 40 个、CWE-122 34 个、CWE-416 32 个、CWE-190 26 个**。
- 在 **PatchAgent、San2Patch、SWE-Agent** 上重评估发现：**超过 40%** 的补丁虽然被传统基础测试验证为正确，但在 **PoC[+]** 测试下失败，说明现有评测存在显著的**false discovery / success-rate overestimation**。
- 为验证 PoC[+] 的可靠性，作者人工比较了通过 PoC[+] 的补丁与开发者补丁，发现 **超过 70%** 达到**语义等价**；其余主要存在性能或质量问题，说明 PoC[+] 能较好捕获开发者意图，但仍非完美。
- 数据集规模和分布的最强具体证据包括：**php 43 个漏洞、cpython 33 个、llvm 26 个、v8 24 个、libxml2 19 个、icu 15 个**。
- 论文摘录未给出三个 AVR 系统逐个工具的精确成功率数字，也未提供按数据集/工具分解的完整表格；最核心定量结论是 **>40% 基础测试“正确”补丁会被 PoC[+] 推翻**。

## Link
- [http://arxiv.org/abs/2603.06858v1](http://arxiv.org/abs/2603.06858v1)
