---
source: arxiv
url: https://arxiv.org/abs/2605.01769v2
published_at: '2026-05-03T08:07:41'
authors:
- Jia Li
- Zhuangbin Chen
- Yuxin Su
- Michael R. Lyu
topics:
- automated-vulnerability-repair
- code-intelligence
- llm-code-generation
- software-security
- program-repair
- repair-patterns
relevance_score: 0.86
run_id: materialize-outputs
language_code: zh-CN
---

# VulKey: Automated Vulnerability Repair Guided by Domain-Specific Repair Patterns

## Summary
## 概要
VulKey 是一个基于 LLM 的自动漏洞修复系统，它用筛选后的修复模式引导补丁生成，而不是直接使用原始 CWE 标签或完整示例补丁。文中报告它在 PrimeVul 上的修复准确率为 31.5%，比摘要中的最佳基线高 7.6 个百分点。

## 问题
- 自动漏洞修复很重要，因为公开漏洞数量很高：NVD 在 2024 年列出 40,009 个已披露漏洞，较去年增加 38.83%。
- 现有的 LLM 修复方法对 CWE 知识的使用很弱。加入 CWE 前缀后，StarCoderBase-15B 的 Exact Match 从 23.9 降到 23.6，Qwen2.5-Coder-32B 从 23.2 降到 22.5。
- 完整的 few-shot 修复示例会带来项目特定噪声。在 435 个 PrimeVul 实例上，随机示例把 EM 降到 11.9 和 12.9，而 BM25 检索得到 17.9 和 16.8，仍低于基础微调。

## 方法
- VulKey 用三个字段表示每个修复模式：CWE 类型、语法动作和语义关键元素。
- 语法动作描述编辑形状，例如插入范围检查或方法调用。语义关键元素描述安全相关的代码线索，例如 `mutex_lock`、`get_net` 或边界条件。
- 这些模式从覆盖 3,789 个真实漏洞的历史漏洞修复 diff 中抽取。
- 一个基于 CodeT5p 的匹配器接收有漏洞的代码和 CWE 上下文，然后预测 top-k 的动作和关键元素模式。
- 一个经过微调的代码生成模型接收有漏洞的函数和选中的模式，然后生成修复后的代码。

## 结果
- 在 C/C++ 的 PrimeVul 上，VulKey 报告的修复准确率为 31.5%。
- 31.5% 这一分数比最佳基线高 7.6 个百分点；该基线是一个在 bug-fix 和 vulnerability-fix 数据上微调过的 StarCoder 模型。
- 论文称，VulKey 在 PrimeVul 上比 VulRepair 高 8.5 倍，比 VulMaster 高 3.6 倍，比 GPT-5 高 3 倍。
- 在 Java 基准 Vul4J 上，VulKey 修复了 18 个案例；VulMaster 为 9 个，VulRepair 为 4 个。
- 论文的初步研究显示，具体示例会拖累性能：StarCoderBase-15B 的 EM 在随机示例下从 23.9 降到 11.9，在 BM25 检索下降到 17.9。

## Problem

## Approach

## Results

## Link
- [https://arxiv.org/abs/2605.01769v2](https://arxiv.org/abs/2605.01769v2)
