CVEfixes
收藏arXiv2025-09-30 收录
下载链接:
https://zenodo.org/record/4476564
下载链接
链接失效反馈官方服务:
资源简介:
该数据集包含了用于训练和测试自动漏洞修复模型的漏洞修复样本。它与Big-Vul结合使用,以提高训练效果。该数据集的规模包括6,844个训练样本和1,638个测试样本,其任务是自动漏洞修复。
This dataset contains vulnerability repair samples designed for training and testing automatic vulnerability repair models. It is used in combination with Big-Vul to boost training performance. The dataset consists of 6,844 training samples and 1,638 test samples, with the core task focused on automatic vulnerability repair.
搜集汇总
数据集介绍

构建方式
在软件安全领域,漏洞检测是保障系统可靠性的关键环节。CVEfixes数据集基于美国国家漏洞数据库(NVD)中公开的CVE记录构建,系统性地收集了截至2024年7月23日的所有已知漏洞修复信息。数据集的构建过程从开源项目的版本控制系统中提取了5495个与CVE记录关联的漏洞修复提交,涵盖了1754个开源项目,并整合了CVE标识符、参考链接、严重性评分、CWE类型等元数据。经过严格的去重处理和时间戳分层采样,数据集最终包含277,948个条目,其中126,599个标记为漏洞代码,151,349个标记为非漏洞代码,覆盖了JavaScript、PHP、Java、Python、Go等多种主流编程语言,为跨语言漏洞检测研究提供了坚实基础。
使用方法
使用CVEfixes数据集时,研究者首先需根据目标编程语言筛选子集,随后执行去重操作以避免数据泄露。建议采用基于提交时间戳的分层采样方法将数据划分为训练集和测试集,确保模型在历史数据上训练并在未来数据上评估,从而验证其泛化能力。数据集适用于微调多种预训练语言模型,如CodeBERT、UnixCoder、CodeT5和DeepSeek-Coder,通过全参数微调进行二分类漏洞检测任务。训练时可采用AdamW优化器、线性预热学习率调度和梯度累积技术,以提升模型性能。此外,数据集还可用于跨语言性能对比分析,以及探究代码复杂度与检测效果之间的相关性。
背景与挑战
背景概述
在软件安全领域,漏洞检测是保障系统完整性的关键环节,然而随着代码规模与复杂度的激增,传统人工审查与静态分析已难以满足现实需求。近年来,基于语言模型(LM)的自动化漏洞检测方法崭露头角,但其研究长期集中于C/C++语言,且面临高误报率与泛化能力不足等困境。为填补这一空白,Lund University与VyPr AI的研究人员于2024年构建了CVEfixes数据集,该数据集系统性地收集了截至2024年7月所有公开CVE记录中涉及漏洞修复的提交,涵盖JavaScript、Java、Python、PHP、Go及C/C++等多种主流编程语言,共计27万余条样本。其核心研究问题在于探究语言模型在不同编程语言间漏洞检测性能的差异,并评估代码复杂度对检测效果的影响。该数据集不仅为跨语言漏洞检测提供了标准化基准,更揭示了JavaScript等语言在检测效能上显著优于C/C++的现象,推动了安全领域对语言特性与模型适应性的深入思考。
当前挑战
CVEfixes数据集所面临的挑战兼具领域复杂性与构建难度。在领域问题层面,漏洞检测本身即是一个高度不平衡的分类任务,非脆弱代码样本远多于脆弱样本,导致模型易偏向多数类,产生高假阳性率;同时,不同编程语言的语义结构与漏洞模式差异悬殊,例如C/C++的低级内存操作与JavaScript的动态类型特性,使得单一模型难以在所有语言上取得均衡表现。此外,已有研究表明,即便采用先进训练策略,语言模型在真实场景中的泛化能力依然有限,尤其面对未见过的代码时性能骤降。在构建过程中,挑战同样严峻:首先,数据来源高度依赖GitHub等主流平台,约20%的漏洞修复分散于其他版本控制系统,需人工收集与验证,增加了数据完整性的维护成本;其次,各语言子集的样本量极不均衡,如Go、Java、Python的可用样本远少于JavaScript,这种自然分布虽反映了现实,却限制了小样本语言模型的训练效果;最后,时间切片划分需兼顾时序完整性以避免数据泄露,同时确保训练集与测试集在脆弱性分布上的代表性,这对预处理流程提出了严苛要求。
常用场景
经典使用场景
在软件安全领域,CVEfixes数据集最经典的用途是作为跨语言漏洞检测研究的基准资源。研究人员利用该数据集构建语言特定的脆弱代码与非脆弱代码子集,通过微调CodeBERT、CodeT5等预训练语言模型,系统评估模型在JavaScript、Java、Python、PHP、Go及C/C++等多种主流编程语言上的漏洞检测性能。该数据集覆盖了从NVD数据库获取的约80%的漏洞修复记录,为探究语言模型在不同代码生态中的泛化能力提供了统一且多样化的实验平台。
解决学术问题
CVEfixes数据集有效解决了学术界长期面临的两大难题:一是缺乏覆盖多语言的、高质量且持续更新的漏洞数据资源,二是现有研究过度集中于C/C++语言而忽视了其他广泛使用语言的检测挑战。依托该数据集,学者得以系统比较语言模型在六种编程语言上的检测差异,并揭示出JavaScript等语言上的检测性能显著优于C/C++。这一发现推动了漏洞检测研究从单一语言向多语言、多场景的范式拓展,为构建更普适的自动化安全分析工具奠定了数据基础。
实际应用
在实际应用中,CVEfixes数据集支撑了自动化漏洞检测系统在DevOps和持续集成流水线中的部署。基于该数据集训练的模型可集成至代码审查工具中,实时标记JavaScript、Java等语言中的潜在安全缺陷,降低人工审查的负担。此外,该数据集还助力安全团队对开源项目进行大规模脆弱性筛查,通过识别未修复的已知漏洞模式,提升软件供应链的安全性。其定期更新的特性确保了检测模型能够应对新兴威胁,保持对真实世界漏洞的时效性响应。
数据集最近研究
最新研究方向
CVEfixes数据集的最新研究方向聚焦于跨编程语言的漏洞检测性能差异分析,特别是利用语言模型(LM)在JavaScript、Java、Python、PHP和Go等非C/C++语言中的表现。该研究通过精细化的数据预处理和模型微调,揭示了JavaScript在漏洞检测中展现出显著优于C/C++的F1分数,而PHP和Go虽准确率高但F1值偏低。研究进一步探讨了代码复杂度与检测性能之间的弱相关性,挑战了传统认知中复杂度决定检测难度的假设。这一方向不仅推动了多语言漏洞检测的实证研究,也为构建更普适的自动化安全分析工具提供了重要参考,尤其在当前软件生态日益多元化的背景下,其意义尤为深远。
相关研究论文
- 1Vulnerability Detection in Popular Programming Languages with Language Models隆德大学 · 2024年
以上内容由遇见数据集搜集并总结生成



