openSUSE/cve-backport-codegen-dataset
收藏Hugging Face2026-04-04 更新2026-03-29 收录
下载链接:
https://hf-mirror.com/datasets/openSUSE/cve-backport-codegen-dataset
下载链接
链接失效反馈官方服务:
资源简介:
---
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).
提供机构:
openSUSE
搜集汇总
数据集介绍

构建方式
在软件安全维护领域,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修复描述与易受攻击的源代码区域结合,直接输出修复后的代码版本,从而规避了传统差异生成对格式的敏感性。当前前沿探索集中于提升模型在跨版本上下文适应与合成增强场景下的代码补全精度,旨在实现从“相同”到“适配”层级的泛化能力突破。这一方向与开源软件供应链安全的热点议题紧密相连,通过自动化辅助减轻维护者手动回移植补丁的负担,对增强大规模开源生态系统的实时漏洞响应具有深远意义。
以上内容由遇见数据集搜集并总结生成



