在软件安全领域,准确评估漏洞检测工具的效果高度依赖于包含“漏洞诱导提交”(Vulnerability-Inducing Commits, VIC)的基准数据集——即首次将漏洞引入代码库的提交。VIC 对于确定受影响的软件版本范围、追踪漏洞演化过程至关重要。然而,现有漏洞数据集普遍存在编程语言覆盖有限(多以单一语言为主)、补丁复杂度受限(多为简单小改动)、项目范围狭窄(多集中于少数知名仓库)等问题,难以反映真实世界漏洞的复杂性和多样性。为此,本文作者结合人工专家双重标注与智能体(agentic)工作流,构建了一个名为 VICBench 的多语言漏洞检测基准。该基准包含 100 个经过验证的 VIC,对应 100 个 CVE,覆盖 88 个开源项目,涉及 Python、Java 和 C++ 三种主流编程语言,涵盖 48 种 CWE 类型。VICBench 的特点是包含高度真实的复杂漏洞修复,平均修复补丁规模为 38.6 行,对应 VIC 平均为 252.5 行,显著大于先前工作所使用的补丁,从而提供了更具挑战性的评估场景。为了检验当前技术的实际水平,作者评估了最先进的漏洞定位算法 V-SZZ 和 LLM4SZZ,结果表明其在 VICBench 上仅能达到 33.3%–40.1% 的 F1 分数,说明依赖现有自动方法仍需要大量人工介入,也揭示了当前自动化漏洞检测方法的性能瓶颈。该基准的发布为漏洞检测研究提供了更高质量、更贴近真实场景的评估平台,有助于推动多语言环境下漏洞检测工具的发展和改进,并可作为后续研究(如大模型微调、代码审计工具评测)的基础设施。本文适用于安全研究人员、软件工程学者以及相关工具开发者阅读。
💡 推荐理由: VICBench 填补了当前漏洞检测基准在语言覆盖、补丁复杂度和项目广度上的空白,为安全团队评估自动化漏洞检测工具(尤其是基于大语言模型的方法)提供了更真实的测试集,推动从研究到实践的有效落地。
🎯 建议动作: 研究跟进