遇见数据集

openSUSE/cve-backport-codegen-dataset

收藏
Hugging Face2026-04-04 更新2026-03-29 收录
官方服务:

资源简介:

--- license: other license_name: mixed-open-source license_link: LICENSE task_categories: - text-generation language: - en tags: - security - cve - backporting - code-generation - patch - opensuse size_categories: - 10K<n<100K --- # CVE Backport Code Generation Dataset Per-hunk code generation dataset for CVE security patch backporting, derived from openSUSE Build Service maintenance patches. ## Task Given a region of vulnerable source code and a description of the upstream CVE fix, the model outputs the **fixed version of the code**. A programmatic diff then produces the final patch. This plays to LLM strengths in code completion and avoids format-sensitivity issues with direct diff generation. ## Files | File | Examples | Description | |------|----------|-------------| | `train.jsonl` | 36,166 | **Latest (v5)** — all 3-turn codegen, no test generation | | `eval.jsonl` | 1,834 | Held-out evaluation set (unchanged across versions) | ## Version History | Version | Examples | What changed | |---------|----------|-------------| | **v5** | 36,166 | All examples converted to 3-turn codegen (removed 772 five-turn test-gen examples from v4). Codegen-only focus improved adapted-tier recall from 86% to 90% | | **v4** | 36,168 | +501 examples from source matching fix, 772 five-turn examples with CVE test cases | | **v3** | 35,778 | Cleaned v2: removed 186 toxic examples (XML test data, DH prime tables, assembly blobs) | | **v2** | 24,452 | Synthetic cross-version augmentation (+7,445 adapted-tier examples), more packages | | **v1** | 17,007 | Initial dataset: per-hunk code generation from openSUSE maintenance patches | ## Format All v5 examples use 3-turn ChatML format (system / user / assistant): ```json { "messages": [ {"role": "system", "content": "You are a security patch backporting assistant..."}, {"role": "user", "content": "## File: lib/url.c\n## Lines: 100-130\n\n```c\n{vulnerable code}\n```\n\n## Fix\nCVE-2024-1234: description"}, {"role": "assistant", "content": "{fixed code}"} ], "metadata": { "cve_id": "CVE-2024-1234", "package": "curl", "language": "c", "tier": "identical", "suse_license": "MIT" } } ``` ## Coverage - **2,300+ CVEs** across **145 packages** - Languages: C (80%), Python (7%), C++ (3%), Shell, Perl, JavaScript, Java, Go, PHP, Ruby - Tiers: identical (patch applies directly), adapted (context differs), synthetic-adapted (cross-version augmentation) - **99.8% per-example SPDX license metadata** ## Licenses All training examples are derived from publicly available openSUSE Build Service maintenance patches. Per-example license metadata is in `metadata.suse_license`. The most common licenses are: LGPL-2.1-or-later, OpenSSL, GPL-2.0-only, MIT, PHP-3.01, Apache-2.0, GPL-2.0-or-later, BSD-3-Clause, GPL-3.0-or-later, BSD-2-Clause, Python-2.0, MPL-2.0, ImageMagick ## Model Trained models are at [openSUSE/CVE-Backport-Qwen2.5-Coder-32B](https://huggingface.co/openSUSE/CVE-Backport-Qwen2.5-Coder-32B). The CLI tool for using the model is at [github.com/openSUSE/cve-backport-tool](https://github.com/openSUSE/cve-backport-tool).

许可证:其他 许可证名称:混合开源 许可证链接:LICENSE 任务类别: - 文本生成 语言: - 英语 标签: - 安全 - 通用漏洞与披露(CVE) - 补丁向后移植 - 代码生成 - 补丁 - openSUSE 样本规模: - 10000~100000 # CVE补丁向后移植代码生成数据集 面向通用漏洞与披露(CVE)安全补丁向后移植的逐代码块代码生成数据集,数据源自openSUSE构建服务的维护补丁。 ## 任务说明 给定存在漏洞的源代码片段与上游CVE补丁的描述信息,模型将输出该代码的修复版本,随后通过程序化差异(diff)生成最终补丁。该任务适配大语言模型在代码补全方面的能力优势,同时规避了直接生成差异补丁时对格式的敏感性问题。 ## 数据集文件 | 文件 | 样本数量 | 描述 | |------|----------|-------------| | `train.jsonl` | 36166 | **最新版(v5)** —— 全部采用3轮代码生成格式,无测试生成内容 | | `eval.jsonl` | 1834 | 预留评估集(各版本保持一致) | ## 版本历史 | 版本 | 样本数量 | 变更内容 | |---------|----------|-------------| | **v5** | 36166 | 所有样本均转换为3轮代码生成格式(移除了v4版本中的772条5轮测试生成样本)。仅聚焦代码生成的调整将适配型召回率从86%提升至90% | | **v4** | 36168 | 新增501条与修复匹配的源样本,以及772条包含CVE测试用例的5轮样本 | | **v3** | 35778 | 基于v2进行清洗:移除了186条有害样本(XML测试数据、DH质数表、汇编二进制块) | | **v2** | 24452 | 新增跨版本合成增强数据(7445条适配型样本),覆盖更多软件包 | | **v1** | 17007 | 初始数据集:基于openSUSE维护补丁生成的逐代码块代码生成数据集 | ## 数据格式 所有v5版本的样本均采用3轮ChatML格式(系统提示/用户提示/助手回复): json { "messages": [ {"role": "system", "content": "你是一名安全补丁向后移植助手……"}, {"role": "user", "content": "## 文件:lib/url.c ## 行范围:100-130 c {存在漏洞的代码} ## 补丁说明 CVE-2024-1234:描述信息"}, {"role": "assistant", "content": "{修复后的代码}"} ], "metadata": { "cve_id": "CVE-2024-1234", "package": "curl", "language": "C", "tier": "identical", "suse_license": "MIT" } } ## 覆盖范围 - **2300+ 个CVE** 覆盖 **145个软件包** - 开发语言:C语言(80%)、Python(7%)、C++(3%)、Shell、Perl、JavaScript、Java、Go、PHP、Ruby - 适配等级:完全匹配(补丁可直接应用)、适配型(上下文存在差异)、合成适配型(跨版本合成增强数据) - **99.8% 的样本带有SPDX许可证元数据** ## 许可证说明 所有训练样本均源自公开可用的openSUSE构建服务维护补丁。每条样本的许可证元数据存储于`metadata.suse_license`字段中。最常见的许可证包括: LGPL-2.1-or-later、OpenSSL、GPL-2.0-only、MIT、PHP-3.01、Apache-2.0、GPL-2.0-or-later、BSD-3-Clause、GPL-3.0-or-later、BSD-2-Clause、Python-2.0、MPL-2.0、ImageMagick ## 模型与工具 训练得到的模型托管于 [openSUSE/CVE-Backport-Qwen2.5-Coder-32B](https://huggingface.co/openSUSE/CVE-Backport-Qwen2.5-Coder-32B)。 该模型的命令行工具托管于 [github.com/openSUSE/cve-backport-tool](https://github.com/openSUSE/cve-backport-tool)。

提供机构:
openSUSE
搜集汇总
数据集介绍
openSUSE/cve-backport-codegen-dataset 数据集图片
构建方式
在软件安全维护领域,CVE Backport Code Generation Dataset的构建源于对开源软件漏洞修复的实践需求。该数据集从openSUSE构建服务的维护补丁中系统性地提取数据,通过程序化方法将上游CVE修复描述与易受攻击的源代码区域进行关联。构建过程历经多个版本的迭代,从初始的每块代码生成逐步优化至专注于三回合代码生成的格式,移除了测试生成示例,从而提升了模型在适配层级的召回率。数据覆盖了超过2300个CVE和145个软件包,其中80%为C语言代码,并包含了跨版本合成的增强示例,确保了数据多样性和代表性。
使用方法
在应用该数据集进行模型训练或评估时,需遵循其特定的结构化格式。所有数据均采用三回合ChatML格式组织,包含系统指令、用户输入和助手输出三个角色,其中用户输入提供了文件路径、代码行号、易受攻击的代码块以及CVE修复描述,助手输出则为对应的修复后代码。研究人员可利用此格式直接微调代码生成模型,专注于安全补丁的后向移植任务。训练完成后,生成的模型可通过配套的命令行工具集成到实际的安全维护工作流中,自动为不同版本的软件生成适配的漏洞修复补丁,从而提升开源软件供应链的安全维护效率。
背景与挑战
背景概述
在软件安全维护领域,及时将上游漏洞修复补丁向后移植到旧版本软件分支是一项关键但繁重的任务。cve-backport-codegen-dataset由openSUSE社区构建,专注于利用大语言模型自动化生成安全补丁代码。该数据集源于openSUSE构建服务的维护补丁,涵盖了超过2300个CVE漏洞和145个软件包,主要涉及C、Python等多种编程语言。其核心研究问题在于如何将上游CVE修复描述与易受攻击的代码区域相结合,自动生成正确的修复后代码版本,从而显著提升安全维护的效率和可靠性。
当前挑战
该数据集旨在解决安全补丁自动生成领域的核心挑战,即如何准确理解漏洞上下文并生成语义正确、语法合规的修复代码。构建过程中面临多重困难:首先,从真实维护补丁中提取高质量、结构化的代码变更对需要精细的解析与对齐;其次,不同软件版本间的代码上下文差异导致‘适配层’补丁的生成尤为复杂;此外,数据集中包含的多种编程语言和许可证协议要求处理过程具备高度的规范性与兼容性,以确保生成结果的实用性与合法性。
常用场景
经典使用场景
在软件安全维护领域,CVE Backport Code Generation Dataset为自动化安全补丁回迁任务提供了标准化基准。该数据集通过模拟上游CVE修复描述与漏洞代码片段的对应关系,引导模型生成修复后的代码版本,从而规避直接生成差异补丁的格式敏感性挑战。其经典使用场景集中于训练大型语言模型进行代码补全,以支持跨版本、跨上下文的补丁适配,显著提升了安全修复在异构代码库中的适用性。
解决学术问题
该数据集有效解决了安全补丁自动化回迁中的核心学术难题,包括代码语义理解、跨版本上下文适配以及修复逻辑的泛化能力。通过提供多层次标注(如identical、adapted等分类),它助力研究者探索模型在复杂代码变更场景下的鲁棒性,并为评估代码生成模型的安全修复能力建立了可重复的评估框架,推动了软件安全与程序分析领域的交叉研究进展。
实际应用
在实际运维中,该数据集支撑了开源软件供应链的安全维护自动化。基于其训练的模型可集成至持续集成流程,协助维护者快速将上游安全修复回迁至下游旧版本代码库,显著缩短漏洞响应时间。例如在openSUSE等Linux发行版的软件包维护中,该工具能自动处理CVE补丁的适配与验证,降低了人工审查成本,提升了大规模代码库的安全治理效率。
数据集最近研究
最新研究方向
在软件安全与漏洞管理领域,CVE Backport Codegen Dataset 的推出标志着自动化安全补丁移植研究进入新阶段。该数据集聚焦于利用大语言模型进行代码生成,将上游CVE修复描述与易受攻击的源代码区域结合,直接输出修复后的代码版本,从而规避了传统差异生成对格式的敏感性。当前前沿探索集中于提升模型在跨版本上下文适应与合成增强场景下的代码补全精度,旨在实现从“相同”到“适配”层级的泛化能力突破。这一方向与开源软件供应链安全的热点议题紧密相连,通过自动化辅助减轻维护者手动回移植补丁的负担,对增强大规模开源生态系统的实时漏洞响应具有深远意义。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务