linevul-08-26
收藏Hugging Face2026-01-25 更新2026-01-26 收录
下载链接:
https://huggingface.co/datasets/jasonhoang6201/linevul-08-26
下载链接
链接失效反馈官方服务:
资源简介:
该数据集由C++代码函数组成,专门用于软件漏洞检测。其设计目的是将基于RoBERTa的模型微调为LineVul模型,以在函数或行级别识别安全漏洞。数据涵盖2008年至2026年,捕捉了多样化的C++编码模式和历史安全漏洞。数据集包含修复前和修复后的代码片段,以及对应的二进制标签(1表示有漏洞,0表示无漏洞)。数据集适用于训练和验证漏洞检测模型,但不适用于自动生成恶意漏洞利用或未经授权的安全测试。
创建时间:
2026-01-24
原始信息汇总
数据集概述:Linevul Dataset (2008-2026)
数据集基本信息
- 数据集名称:Linevul Dataset (2008-2026)
- 维护者:Myself
- 资助方:Self-funded for Academic Research
- 主要语言:C++(源代码)
- 许可证:MIT(基于Fan等人,2020年的方法论)
- 任务类别:文本分类
- 标签:网络安全、漏洞检测、软件工程、linevul
数据集详情
- 描述:该数据集包含为软件漏洞检测而整理的C++代码函数。旨在将基于RoBERTa的模型微调为LineVul模型,以在函数或代码行级别识别安全漏洞。数据时间跨度从2008年到2026年,涵盖了多样化的C++编码模式和历史安全缺陷。
- 文件:my_dataset_clean.csv
- 总样本量:约104,000个示例
数据集来源
- 代码仓库:https://github.com/jasonhoang6201/MSR_20_Code_vulnerability_CSV_Dataset_08_25
- 参考论文:https://dl.acm.org/doi/10.1145/3379597.3387501
数据集结构
数据集以CSV文件格式提供,包含以下字段:
| 字段名 | 描述 |
|---|---|
processed_func |
包含漏洞的原始C++函数。 |
vul_func_with_fix |
应用了安全补丁的修复后C++函数。 |
target |
二进制标签:1(易受攻击/修复前)或0(良性/修复后)。 |
数据划分
- 训练集:80%(约83,200个样本)
- 测试/验证集:20%(约20,800个样本)
预期用途
- 直接用途:主要用于微调大型语言模型(如RoBERTa),以将代码片段分类为“易受攻击”或“良性”。也适用于对打补丁和未打补丁的代码进行差异分析。
- 非预期用途:不适用于自动生成恶意漏洞利用程序或用于未经授权的安全测试。
数据集创建
- 创建缘由:作为硕士学位项目的一部分开发,旨在为训练最先进的漏洞检测模型提供一个高质量、长期(2008-2026)的数据集。
- 数据来源:数据源自为公共C++仓库做出贡献的开源开发者和记录CVE的安全研究人员。
- 收集与处理:数据爬取遵循BigVul论文的方法论,针对与**通用漏洞披露(CVE)**条目关联的GitHub提交。
- 提取:从与安全相关的提交中提取函数。
- 标注:修复前的代码片段标注为
1,修复后的代码片段标注为0。 - 清理:移除非C++代码和重复条目。
偏差、风险与局限性
- CVE中心化:数据集仅包含被官方发现并修补的漏洞;可能无法代表未发现的逻辑缺陷。
- 标签泄露:由于
target 0通常是target 1的after_fix版本,模型可能学会识别“修复模式”(例如添加空值检查),而非漏洞本身。
搜集汇总
数据集介绍

构建方式
在软件安全研究领域,构建高质量漏洞检测数据集是推动模型性能提升的关键。Linevul-08-26数据集遵循BigVul论文的方法论,通过爬取GitHub上与通用漏洞披露条目关联的安全修复提交,系统性地提取C++函数代码。数据收集过程聚焦于2008年至2026年间的历史漏洞,对每个提交分别提取修复前后的代码片段,并赋予二元标签:修复前版本标记为易受攻击,修复后版本标记为安全。为确保数据纯净度,后续清理工作移除了非C++代码及重复条目,最终形成包含约10.4万个样本的结构化集合。
特点
该数据集的核心特征体现在其时间跨度与结构化设计上。覆盖近二十年的C++代码漏洞,能够捕捉不同时期的编程模式与安全缺陷演变,为模型提供历史纵深的学习材料。数据以函数级粒度组织,每个样本均包含修复前后的代码对,支持差异分析与对比学习。标签体系简洁明确,直接反映漏洞存在状态,便于监督训练。然而,数据集仅收录已公开披露的漏洞,可能无法涵盖未发现的逻辑缺陷;同时修复前后的对应关系可能导致模型过度关注补丁模式而非漏洞本质,这是在应用中需要注意的潜在偏差。
使用方法
该数据集主要应用于基于Transformer架构的预训练模型微调,特别是RoBERTa系列模型,可将其转化为能够进行函数级或行级漏洞检测的LineVul模型。使用者可直接加载CSV文件,依据推荐的8:2比例划分训练集与测试集,利用代码文本与二元标签进行端到端的分类任务训练。此外,修复前后代码的并行呈现也为差分分析提供了便利,可用于研究漏洞模式与修复策略。需注意的是,数据集不适用于恶意代码生成或未经授权的安全测试,应严格限定于学术研究与合法的安全评估场景。
背景与挑战
背景概述
在软件工程与网络安全领域,自动化漏洞检测是保障软件质量与安全性的核心研究方向。Linevul-08-26数据集由学术研究人员于2020年后创建,其构建基于Fan等人提出的方法论,旨在为基于深度学习的漏洞检测模型提供高质量训练资源。该数据集聚焦于C++源代码函数,覆盖了从2008年至2026年的广泛时间跨度,通过关联GitHub安全修复提交与通用漏洞披露条目,系统性地收集了漏洞修复前后的代码片段。其核心研究问题在于提升模型在函数或代码行级别识别安全漏洞的准确性与泛化能力,对推动智能化代码审计工具的发展具有显著影响力。
当前挑战
该数据集致力于解决软件漏洞自动检测这一领域问题,其核心挑战在于模型可能过度依赖修复模式而非漏洞本质,导致标签泄漏问题,即模型学会识别如空指针检查等修补特征,而非真正理解漏洞的语义与上下文。在构建过程中,数据收集面临诸多挑战:其一,数据源局限于已公开披露的通用漏洞披露条目,可能遗漏未发现的逻辑缺陷或零日漏洞,造成覆盖范围偏差;其二,从海量提交中精确提取与漏洞相关的函数并对修复前后版本进行可靠标注,需要复杂的代码解析与去重处理,以确保数据质量与一致性。
常用场景
经典使用场景
在软件安全与漏洞检测领域,LineVul数据集为基于深度学习的代码分析模型提供了关键训练资源。该数据集的核心应用场景在于微调RoBERTa等大型语言模型,使其能够精准识别C++函数级别的安全漏洞。通过对比修复前后的代码片段,模型学习区分易受攻击与安全的编码模式,从而在静态代码分析中实现自动化漏洞检测,显著提升了软件开发生命周期中的安全审计效率。
衍生相关工作
基于LineVul数据集,学术界衍生出多项经典研究工作,例如改进的LineVul模型架构,该模型通过结合代码抽象语法树与注意力机制提升检测精度。同时,该数据集启发了对漏洞定位、跨语言漏洞迁移学习以及代码修复生成等方向的探索,相关成果发表在软件工程与安全领域的顶级会议上,进一步拓展了智能代码分析的研究边界,并促进了开源安全工具生态的发展。
数据集最近研究
最新研究方向
在软件安全与漏洞检测领域,LineVul数据集凭借其覆盖2008至2026年C++代码漏洞的长期跨度,为基于深度学习的静态分析技术提供了关键支撑。前沿研究聚焦于缓解标签泄漏问题,探索通过对比学习或因果推断方法,使模型超越表面修复模式,真正识别漏洞的语义根源。同时,结合大语言模型的代码理解能力,研究者正致力于构建细粒度、可解释的漏洞定位系统,以应对日益复杂的软件供应链安全挑战,推动自动化安全审计向更高精度与可靠性演进。
以上内容由遇见数据集搜集并总结生成



