five

Linux Kernel Vulnerability Dataset

收藏
github2026-01-08 更新2026-01-10 收录
下载链接:
https://github.com/quguanni/kernel-vuln-data
下载链接
链接失效反馈
官方服务:
资源简介:
从20年Linux内核git历史(2005-2025)中挖掘出的125,183个错误修复对。

125,183 bug fix pairs extracted from the 20-year Git history of the Linux kernel spanning from 2005 to 2025.
创建时间:
2026-01-07
原始信息汇总

Linux Kernel Vulnerability Dataset 概述

数据集基本信息

  • 数据集名称:Linux Kernel Vulnerability Dataset
  • 数据来源:从20年(2005-2025年)的Linux内核Git历史记录中挖掘
  • 核心内容:包含125,183个bug-fix对(即修复提交与引入该bug的提交配对)
  • 文件vuln_commits_full.csv

数据文件结构

vuln_commits_full.csv 文件包含以下列:

  • fixing_commit:修复bug的提交的SHA
  • introducing_commit:引入bug的提交的SHA
  • lifetime_days:bug从引入到修复之间的天数
  • subsystem:内核子系统(如网络、驱动、GPU等)
  • bug_type:检测到的bug类型(如释放后使用、空指针解引用等)
  • fixing_date / introducing_date:时间戳
  • fix_author / intro_author:提交作者
  • files_changed, insertions, deletions:差异统计
  • cve_id:提及的CVE ID(可为空)
  • cc_stable:修复是否被标记为需要稳定版向后移植

关键统计发现

总体指标

  • 总bug-fix对数量:125,183
  • 平均bug生命周期:2.1年
  • 中位bug生命周期:0.7年
  • 最长生命周期bug:20.7年(ethtool缓冲区溢出)
  • 隐藏5年以上的bug比例:13.5%

按子系统分析(平均生命周期)

子系统 平均生命周期
CAN总线 4.2年
SCTP 4.0年
IPv4 3.6年
USB 3.5年
Netfilter 2.9年
GPU 1.4年
BPF 1.1年

按bug类型分析(平均生命周期)

Bug类型 平均生命周期
竞争条件 5.1年
整数溢出 3.9年
释放后使用 3.2年
内存泄漏 3.1年
空指针解引用 2.2年

配套脚本

  • cve_miner.py:从内核Git历史记录中提取Fixes:标签
  • extract_features.py:从提交差异中提取51个特征用于机器学习训练

使用示例

python import pandas as pd df = pd.read_csv(vuln_commits_full.csv)

按子系统计算平均生命周期

df.groupby(subsystem)[lifetime_days].mean().sort_values(ascending=False)

Bug类型分布

df[bug_type].value_counts()

其他访问方式

  • HuggingFace平台:该数据集也可在HuggingFace上获取,并配有Data Studio查看器。
    • 地址:https://huggingface.co/datasets/quguanni/kernel-vuln-dataset
  • 相关博客文章:https://pebblebed.com/blog/kernel-bugs

引用格式

bibtex @dataset{qu2026kernelvuln, author = {Qu, Jenny Guanni}, title = {Linux Kernel Vulnerability Dataset}, year = {2026}, url = {https://github.com/quguanni/kernel-vuln-data} }

许可与联系

  • 许可证:MIT
  • 联系人:Jenny Guanni Qu (jenny@pebblebed.com)
搜集汇总
数据集介绍
main_image_url
构建方式
该数据集通过深入挖掘Linux内核长达二十年的Git历史记录(2005年至2025年)构建而成。研究人员利用自动化脚本,如cve_miner.py,从提交历史中提取包含修复标记的提交,并识别出引入漏洞的对应提交。通过分析提交差异,数据集记录了每个漏洞修复对的具体信息,包括提交哈希值、时间戳、修改文件统计以及漏洞类型等关键元数据,最终形成了包含125,183个漏洞修复对的全面集合。
使用方法
用户可通过加载CSV文件,利用Pandas等数据分析工具进行探索性研究。数据集支持按子系统或漏洞类型分组统计平均生命周期,也可分析漏洞的分布规律。对于机器学习应用,配套的extract_features.py脚本能够从提交差异中提取51个特征,便于训练预测模型。数据集同时托管于HuggingFace平台,提供在线查看功能,方便研究者直接访问与集成。
背景与挑战
背景概述
在软件工程与信息安全领域,操作系统内核的安全性构成了整个计算生态的基石。Linux内核作为全球最广泛部署的开源操作系统核心,其漏洞的发现与修复过程深刻影响着数亿设备的稳定与安全。由Jenny Guanni Qu等人于2026年构建的Linux内核漏洞数据集,系统性地采集了2005年至2025年间共计125,183个漏洞修复对,覆盖了网络、驱动、GPU等多个子系统,并标注了漏洞类型、生命周期及关联的CVE编号。该数据集旨在揭示长期存在于复杂软件系统中的漏洞引入与修复模式,为软件缺陷预测、漏洞管理及自动化修复技术的研究提供了关键的数据基础,推动了软件安全分析从经验驱动向数据驱动的范式转变。
当前挑战
该数据集致力于应对软件漏洞分析领域的核心挑战,即如何从海量、异构的代码变更历史中准确识别漏洞引入与修复的对应关系,并量化漏洞的潜伏周期。构建过程中面临多重技术障碍:首先,从跨越二十年的Git提交历史中自动挖掘漏洞修复对,需精确解析‘Fixes:’等元数据标签,并排除无关的代码修改噪声;其次,对漏洞类型进行一致化分类面临语义模糊性,例如区分竞态条件与内存泄漏需依赖复杂的代码语义理解。此外,数据集中约13.5%的漏洞潜伏期超过五年,最长达20.7年,这揭示了在持续演化的超大型代码库中,早期设计缺陷或隐蔽的逻辑错误如何长期隐匿,对自动化漏洞检测工具的覆盖深度与时效性提出了严峻考验。
常用场景
经典使用场景
在软件安全与漏洞分析领域,Linux内核作为开源操作系统的核心,其漏洞数据为研究者提供了丰富的实证基础。该数据集通过挖掘长达20年的Git历史,提取了超过12.5万个漏洞修复对,常用于构建机器学习模型以预测漏洞引入与修复的模式。研究者利用这些数据训练分类器,识别易受攻击的代码提交,从而在软件开发早期阶段预警潜在风险,提升内核代码的质量与安全性。
解决学术问题
该数据集有效解决了软件工程中关于漏洞生命周期管理的核心学术问题,例如漏洞潜伏期的量化分析与影响因素探究。通过统计不同子系统与漏洞类型的平均存在时间,揭示了如竞争条件等复杂缺陷往往隐藏更久,这为理解漏洞演化规律提供了数据支撑。其意义在于推动了基于实证的漏洞预测方法发展,帮助学术界构建更精准的漏洞发现理论框架,对提升软件可靠性研究具有深远影响。
实际应用
在实际应用中,该数据集被广泛用于增强Linux内核的持续集成与测试流程。开发团队可依据漏洞历史数据,优化代码审查重点,优先检测高风险的子系统如CAN总线或网络协议栈。此外,安全工程师能够借鉴漏洞生命周期特征,设计针对性的静态分析工具,加速漏洞检测与修复,从而降低生产环境中安全事件的发生概率,保障关键基础设施的稳定运行。
数据集最近研究
最新研究方向
在操作系统安全领域,Linux内核作为关键基础设施的核心组件,其漏洞研究始终是学术界与工业界关注的焦点。基于Linux内核漏洞数据集,当前前沿研究聚焦于利用机器学习方法预测漏洞生命周期与分布模式,通过分析超过12万条漏洞修复对,揭示不同子系统如CAN总线、SCTP协议中漏洞潜伏期的显著差异,其中竞态条件类漏洞平均潜伏长达5.1年,凸显了异步编程缺陷的隐蔽性。这一数据集不仅推动了自动化漏洞挖掘工具的演进,还关联到供应链安全事件中内核级漏洞的溯源分析,为构建主动防御体系提供了实证基础,对提升开源生态的长期韧性具有深远意义。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作