linevul-08-26
收藏资源简介:
该数据集由C++代码函数组成,专门用于软件漏洞检测。其设计目的是将基于RoBERTa的模型微调为LineVul模型,以在函数或行级别识别安全漏洞。数据涵盖2008年至2026年,捕捉了多样化的C++编码模式和历史安全漏洞。数据集包含修复前和修复后的代码片段,以及对应的二进制标签(1表示有漏洞,0表示无漏洞)。数据集适用于训练和验证漏洞检测模型,但不适用于自动生成恶意漏洞利用或未经授权的安全测试。
This dataset comprises C++ code functions specifically designed for software vulnerability detection. It is developed to fine-tune RoBERTa-based models into the LineVul model for identifying security vulnerabilities at either the function or line level. The data spans from 2008 to 2026, capturing diverse C++ coding patterns and historical security vulnerabilities. The dataset includes code snippets before and after vulnerability fixes, along with corresponding binary labels, where 1 indicates a vulnerable code and 0 indicates a non-vulnerable one. This dataset is suitable for training and validating vulnerability detection models, but is prohibited from being used to automatically generate malicious exploit codes or conduct unauthorized security tests.
数据集概述: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版本,模型可能学会识别“修复模式”(例如添加空值检查),而非漏洞本身。




