遇见数据集

patchaudit-artifact

收藏
Hugging Face2026-09-07 更新2026-09-08 收录
官方服务:

资源简介:

BadPatch-Bench 是一个用于评估安全补丁审计工具性能的基准测试数据集。该数据集包含 565 对 (C1, C2) 补丁对,覆盖 110 个不同的 CVE 漏洞。每个补丁对由初始补丁提交 C1 和后续提交 Ci 组成,旨在判断 Ci 是否是 C1 的“未来补丁”(即 C1 修复不完整或不正确,需要后续补丁继续修复)。数据集以 JSONL 格式存储(benchmark_565.jsonl),并附带额外标注数据:benchmark_candidate.json(110 个标记的 CVE,其中 45 个为正例、65 个为负例)、all_positive.json(617 个坏补丁)、all_negative.json(5786 个非坏补丁 CVE)、reexploitation_cases.json(12 个重新利用案例)以及 zero_day_pocs/ 目录(13 个零日攻击 PoC,仅供防御研究)。该数据集适用于安全补丁分析、漏洞修复质量评估、自动化补丁审计工具的基准测试等任务。

BadPatch-Bench is a benchmark dataset for evaluating the performance of security patch auditing tools. It contains 565 pairs of (C1, C2) patches covering 110 different CVEs. Each patch pair consists of an initial patch commit C1 and a subsequent commit Ci, aiming to determine whether Ci is a future patch of C1 (i.e., C1s fix is incomplete or incorrect, requiring further patches). The dataset is stored in JSONL format (benchmark_565.jsonl) with additional annotation data: benchmark_candidate.json (110 labeled CVEs, 45 positive and 65 negative), all_positive.json (617 bad patches), all_negative.json (5786 non-bad patch CVEs), reexploitation_cases.json (12 re-exploitation cases), and a zero_day_pocs/ directory (13 zero-day proof-of-concept exploits, for defense research only). The dataset is suitable for tasks such as security patch analysis, vulnerability fix quality assessment, and benchmarking of automated patch auditing tools.

创建时间:
2026-09-06
原始信息汇总

PatchAudit Artifact 数据集概述

数据集简介

PatchAudit Artifact 是一个用于审计安全补丁的技术工具包,其核心功能是判断给定CVE的初始补丁提交(C1)之后的某个提交(Ci)是否为“未来提交”(future commit),即该提交是否延续了C1的修复工作(因C1不完整而遗留相同漏洞)或纠正了C1引入的新缺陷。若存在真正的未来提交,则C1为劣质补丁(bad patch);若最新未来提交仍未能封闭漏洞,则为持久性(零日)劣质补丁。

技术架构

工具采用三阶段流水线:

  1. 阶段1 — 文本意图:筛选提交消息/关联问题、PR、公告或CVE与哈希引用中暗示延续C1的后续提交,并由紧凑文本模型验证意图。
  2. 阶段2 — 语义意图:构建全仓库代码属性图(Joern),从C1与Ci的变更行进行有界3跳前向数据/控制切片并求交为意图范围,由代码LLM(Qwen3-14B)给出带依据的YES/NO决策。
  3. 阶段3 — 验证:使用咨询性静态证据(CodeQL+Semgrep)、独立LLM评审员(GPT-5)审计推理的扎根性/一致性/定义保真度,并运行有界细化循环(≤3轮)最终裁决为“未来提交”或“非未来提交”。

模型与数据资源

  • 基础模型:Qwen3-14B(约28GB),默认加载微调适配器 models/phase2_lora,以 vLLM 服务为模型名 phase2
  • 微调适配器models/phase1_lora(文本意图过滤器)和 models/phase2_lora(阶段2语义意图代理)。
  • 数据集文件(位于 data/ 目录):
    • benchmark_565.jsonl(BadPatch-Bench):565对 (C1,C2),覆盖110个CVE
    • benchmark_candidate.json:110个标记CVE(45正例/65负例)
    • all_positive.json:617个劣质补丁
    • all_negative.json:5786个非劣质补丁CVE
    • reexploitation_cases.json:12个重新利用案例
    • zero_day_pocs/:13个零日PoC(独立集合,仅限防御性研究)

使用示例

内置两个示例案例:

  • CVE-2021-31542(Django目录遍历,论文图10):C1(0b79eb36)添加的 validate_file_name() 守卫过度限制拒绝任何路径分隔符,C2(b5569996)将其放宽为仅阻止 ..。预期结果为仅C2被识别为未来提交,最终判定为劣质补丁。
  • CVE-2025-62193(NOAA-PMEL/LAS,Java):C1(e69afb18)将检查置于 lasRequest 解析前导致守卫未触发,C2(de5f9237)在19分钟后移动检查位置以使其生效。

输出模式

对每个评分的后续提交,输出文件包含:

  • result/prompts_v3.jsonl:阶段2提示、后续提交哈希、交集统计(共享项数、核心项数、共享文件等)及意图范围片段
  • result/phase23_loop.*.jsonl:最终标签(future-commit/not-future-commit)、置信度、状态(accepted/unresolved)、各轮代理决策/补丁类型(incomplete/incorrect/n/a)、评审员一致性与扎根审计、最终报告(合理性、问题、原因)、静态投票结果

运行环境要求

  • Linux x86-64(Ubuntu 24.04测试),首次部署需约65-70GB磁盘空间
  • 2×≥24GB GPU(或单个48GB GPU)用于阶段2代理
  • Docker与GPU访问(NVIDIA CDI或 --gpus all
  • OPENAI_API_KEY 必需(阶段3 GPT-5验证评审员)

扩展性

支持输入任意CVE的初始补丁信息(提交哈希C1、仓库URL/路径、CVE描述),设置 later_commits: "auto" 即自动发现候选未来提交。可选参数包括 max_candidates(上限60)、snapshot_paths(限定CPG子目录)及 --stop-at-first-yes(首个确认未来提交即停止)。

搜集汇总
数据集介绍
patchaudit-artifact 数据集图片
构建方式
PatchAudit Artifact数据集围绕安全补丁审计任务构建,集成了完整的代码、模型与工具链。其构建以CVE初始补丁提交C1为核心输入,通过三阶段流水线实现未来提交的自动发现与判定:第一阶段利用文本模型过滤后期提交,第二阶段构建仓库级代码属性图并进行切片交叠分析,借助基于Qwen3-14B的LoRA微调代理判断语义意图,第三阶段结合CodeQL、Semgrep静态分析及GPT-5评审,形成最终裁决。数据集中包含标注的CVE集合及BadPatch-Bench基准,涵盖565对提交样本与110个CVE案例,并附有详细的案例目录与预构建镜像,便于复现验证。
特点
该数据集具有鲜明的工程化与实证特征。其核心创新在于将安全补丁审计细分为文本意图、语义意图与验证三个阶段,实现了从粗粒度筛选到细粒度逻辑推理的递进式分析。数据集不仅提供了完整的工具代码与微调模型适配器,还附带两个代表性案例,其中CVE-2021-31542案例对应论文中的Figure 10,具有明确的预期输出,便于用户验证系统行为。此外,数据集包含大量负面与正面样本,支持大规模基准测试,且通过可配置的提交筛选策略与阶段化运行模式,展现出高度的灵活性与复现性。
使用方法
使用该数据集时,用户需具备Linux环境、两块至少24GB显存的GPU以及Docker支持。基本流程包括加载或构建分析镜像,启动vLLM服务器加载基础模型与微调适配器,并设置OpenAI API密钥以启用GPT-5评审。通过运行针对具体案例的脚本,如案例目录中的case.json,可端到端复现未来提交的发现过程,或单独执行清洗、切片、静态分析等子阶段。数据集支持的三种候选提交模式(auto、c2、between)分别对应全自动发现、固定对比较与窗口扫描,便于用户根据研究需求调整审计粒度,并可通过与基准数据的对比评估模型效能。
背景与挑战
背景概述
PatchAudit Artifact是针对软件安全补丁质量审计的开源工具包,由安全研究团队于2026年发布,旨在应对日益严峻的软件供应链安全挑战。其核心研究问题在于识别不完整或错误的初始安全补丁,即'坏补丁',这些补丁可能留下可被利用的漏洞或引入新的缺陷。通过三阶段流水线(文本意图过滤、语义意图分析、验证阶段),该工具利用代码属性图、大语言模型(如Qwen3和GPT-5)以及静态分析工具,在提交级别自动判断后续提交是否为'未来提交'。该数据集包含565个标注的补丁对,覆盖110个CVE,为安全补丁审计领域提供了首个大规模基准,对推动自动化漏洞修复质量评估具有重要影响力。
当前挑战
该领域面临的核心挑战包括:首先,安全补丁的复杂性使得仅凭文本或结构难以判断补丁是否真正修复漏洞,需要融合多源信息(如代码语义、上下文)进行推理;其次,现有工具难以区分完整修补与部分修补,错误地接受坏补丁可能导致漏洞长期潜伏。在构建PatchAudit数据集过程中,挑战包括收集大量真实世界的CVE补丁并准确标注其质量,这需要专家知识;构建代码属性图和计算有限跳切片需要大量计算资源;此外,微调大语言模型以准确判断补丁意图,需要昂贵的GPU资源和精心设计的训练数据,而确保模型输出与静态分析结果一致并做出可靠决策,则依赖于迭代的验证和仲裁机制。
常用场景
经典使用场景
PatchAudit-artifact数据集聚焦于软件安全补丁的审计任务,其经典使用场景是自动化判定后续提交是否构成针对初始修补的“未来提交”。在开源软件维护中,补丁不完整或引入新缺陷的现象屡见不鲜,该数据集通过整合文本意图过滤、基于代码属性图的语义切片分析以及大语言模型推理,构建了三阶段流水线,能够对CVE补丁进行系统性审查,识别出那些未完全修复漏洞或引发新问题的劣质补丁,为安全工程师提供高效的工具支持。
衍生相关工作
该数据集衍生了多项经典工作,包括构建了包含565对标注补丁的BadPatch-Bench基准,成为评估补丁审计工具的标尺。基于此,研究者延伸出缺陷定位、补丁生成验证、以及利用代码大模型进行漏洞根因分析等方向。此外,数据集中采用的Joern代码属性图与LLM协作的框架,启发了后续结合静态分析和深度学习进行软件维修的研究,推动了“自动化安全补丁审查”作为一个独立研究分支的成熟,并促进了安全工具链中“人机协同审计”模式的发展。
数据集最近研究
最新研究方向
面对安全补丁实践中日益凸显的缺陷,如修复不完整或引入新缺陷,PatchAudit Artifact数据集开创性地聚焦于安全补丁的审计与验证领域,引领了自动化识别“未来提交”的前沿方向。该数据集通过整合文本意图筛选、基于代码属性图的语义切片分析以及大型语言模型的深度推理,构建了精细的三阶段流水线,辅以可复现的基准测试集(BadPatch-Bench)。其研究重心在于发展能够精准判定补丁优劣并溯源缺陷根因的智能审计机制,这对于构筑稳固的软件安全防线、应对零日漏洞的持续威胁具有里程碑式的意义,显著提升了安全响应的效率与准确性。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务