遇见数据集

VICBench

收藏
arXiv2026-08-13 更新2026-08-14 收录
数据链接:
官方服务:

资源简介:

VICBench是一个多语言代码漏洞检测基准数据集,由亚马逊云服务、匹兹堡大学和普渡大学联合构建。该数据集包含100个经过验证的漏洞引入提交(VICs),对应100个CVE,覆盖88个开源项目、3种编程语言(Python、Java、C++)和48种CWE类型,平均修复提交修改38.6行,VIC修改252.5行,显著大于先前工作。通过人类专家与VIC-Agent双重标注(κ=0.707)及专家验证,确保数据质量。该基准旨在评估漏洞检测工具的性能,填补现有数据集在语言多样性、补丁复杂性和项目范围上的空白,支持稳健的代码安全评估。

VICBench is a multilingual code vulnerability detection benchmark dataset jointly constructed by Amazon Web Services, University of Pittsburgh, and Purdue University. This dataset includes 100 verified vulnerability-introducing commits (VICs), corresponding to 100 Common Vulnerabilities and Exposures (CVE) entries, covering 88 open-source projects, three programming languages (Python, Java, C++), and 48 Common Weakness Enumeration (CWE) types. The average number of modified lines in repair commits is 38.6, while that in VICs is 252.5, which is significantly larger than those in prior research. Data quality is guaranteed via dual annotation by human experts and VIC-Agent (Cohen's κ=0.707) followed by expert validation. This benchmark is designed to evaluate the performance of vulnerability detection tools, fill the gaps of existing datasets in linguistic diversity, patch complexity, and project coverage, and support robust code security assessment.

创建时间:
2026-08-13
搜集汇总
数据集介绍
VICBench 数据集图片
构建方式
VICBench的构建遵循严谨的双重标注流程,融合人类专家与自动化代理工作流,旨在精准定位漏洞引入提交(VIC)。研究团队从ReposVul、CWE-Bench-Java及VJBench三个公开数据源中随机抽取100个CVE实例,覆盖Python、Java和C++三种编程语言、88个项目及48种CWE类型。标注过程由具备九年编程经验的研究者人工追踪漏洞语义引入点,同时开发VIC-Agent自动化工作流,利用大语言模型结合git工具进行模式搜索与提交验证。两种独立标注结果达成κ=0.707的Cohen's Kappa一致性,分歧案例由第二位人类标注者独立复核,并由资深安全工程师抽样验证,最终构建出包含100个经核实VIC的高质量基准数据集。
特点
VICBench的核心特点在于其真实复杂性与多语言覆盖。相较于现有数据集,本基准显著提升补丁复杂度:修复提交平均涉及38.6行代码变更,而VIC平均包含252.5行,远超先前研究的1-5行限制,真实反映大型功能实现中的漏洞场景。数据覆盖48种CWE类型,其中XSS(CWE-79)和路径遍历(CWE-22)占比最高,确保安全评估的广泛性。尤为重要的是,数据集精心挑选了跨文件移动、重构及纯新增等传统算法难以处理的案例,如CVE-2021-44878和CVE-2019-15477,凸显语义推理在VIC识别中的必要性。这种设计使VICBench成为评估漏洞检测工具鲁棒性的严苛基准,现有先进算法V-SZZ和LLM4SZZ在数据集上仅分别达到33.3%和40.1%的F1分数,证实其挑战性与应用价值。
使用方法
VICBench作为多语言漏洞检测基准,适用于评估自动识别漏洞引入提交(VIC)的方法。用户可通过官方Zenodo仓库获取数据集,其中每个实例包含CVE描述、修复提交及经人工验证的真值VIC。评估时,可输入CVE信息与代码仓库历史,运行待测算法输出预测VIC,并与真值比较计算精确率、召回率与F1分数。数据集设计支持跨语言评估,覆盖Python、Java和C++项目,可验证工具在不同生态下的泛化能力。基于给出的性能参考(V-SZZ 33.3% F1,LLM4SZZ 40.1% F1),研究人员能据此标定自身方法优劣。该基准亦可用于训练与微调模型,或作为迁移学习的测试集。通过公开可复现的评估协议,VICBench旨在推动漏洞检测研究向更贴近真实复杂场景的实用方向演进。
背景与挑战
背景概述
随着软件安全领域的迅猛发展,漏洞检测已成为保障系统安全的关键环节。传统的静态分析与深度学习模型在识别漏洞方面各有局限,而基于大语言模型的代码审查工具亦面临评估基准缺失的困境。在此背景下,由亚马逊云服务的研究人员联合匹兹堡大学与普渡大学于2026年构建的VICBench数据集应运而生。该数据集旨在解决现有漏洞数据集在语言覆盖、补丁复杂度及项目范围上的不足,通过双标注机制(人类专家与智能体工作流)为100个CVE漏洞精心标注了100个漏洞诱导提交(VIC),横跨Python、Java与C++三大主流语言,覆盖88个开源项目与48种CWE类型。VICBench的发布为漏洞检测算法提供了更为严苛且贴近真实世界的评估基准,有力推动了该领域的发展。
当前挑战
VICBench所面临的挑战主要源于漏洞诱导提交(VIC)识别的固有复杂性。在领域层面,现有追踪方法(如SZZ及其变体)依赖git-blame启发式规则,难以应对文件重构、跨文件代码迁移及仅新增代码的修复模式,导致这些方法在真实场景中精度低下(如V-SZZ与LLM4SZZ的F1分数仅33.3%-40.1%)。构建过程中,人工标注需耗费大量时间,且需在代码演化历史中精确定位语义引入点,而自动化工具虽能提高效率,却常因重构或文件删除而误判提交。此外,数据集的构建还需平衡语言多样性、补丁规模与数据质量,VICBench的补丁平均规模远超既有工作,进一步加剧了标注与验证的难度。
常用场景
经典使用场景
VICBench作为面向漏洞引入提交(VIC)的高质量基准数据集,其经典使用场景聚焦于评估和验证各类软件漏洞检测工具的性能。该数据集精心构建了100个经过验证的VIC实例,覆盖Python、Java和C++三种编程语言,并跨越88个真实世界项目,包含48种CWE漏洞类型。相较于以往数据集,VICBench显著提升了补丁复杂度,其修复提交平均涉及38.6行代码变更,而对应的VIC平均涉及252.5行,这为测试先进漏洞检测算法提供了更具挑战性的评估平台。研究者通常利用该基准来系统比较基于追踪、语义分析或大语言模型的不同检测方法的准确率、召回率和F1分数,从而客观衡量各方法在复杂真实场景下的实际效能。
衍生相关工作
VICBench的发布催生了多项衍生研究工作,推动了漏洞检测技术的前沿进展。该基准的构建过程中采用了双注释流程,即人工专家与自动化代理(VIC-Agent)的协同标注,此方法已在后续研究中被广泛借鉴,用于构建更高质量的安全数据集。此外,VICBench的评估结果激励了研究者探索结合大语言模型和语义分析的增强型VIC检测算法,如LLM4SZZ的改进版本以及基于知识图谱的推理方法。这些衍生工作不仅提升了VIC识别的准确性,还扩展了基准在跨语言、跨项目场景下的适用性,为构建更全面、自动化的软件安全检测体系奠定了坚实基础。
数据集最近研究
最新研究方向
VICBench数据集聚焦于多语言漏洞引入提交的精确识别与验证,其最新研究导向在于构建覆盖Python、Java、C++等主流语言的复杂真实世界漏洞基准,以应对现有数据集在语言多样性、补丁复杂度及项目范围上的局限。该数据集通过人工专家与智能体双重标注策略,实现了对100个CVE的高质量VIC标注,显著提升了漏洞检测基准的真实性与挑战性。当前前沿研究围绕利用大语言模型(如LLM4SZZ)和图推理技术优化VIC自动检测算法,目标是在跨文件代码移动、重构及增量修复等复杂场景下提升识别精度。VICBench的出现填补了多语言、复杂补丁场景下VIC基准的空白,为漏洞检测工具的有效性评估提供了坚实参照,推动了软件安全领域在漏洞生命周期早期识别与主动防御方面的研究进展。
相关研究论文
  • 1
    VICBench: A Multi-Language Benchmark for Code Vulnerability Detection亚马逊云服务; 匹兹堡大学; 普渡大学 · 2026年
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务