mizan-vanilla
收藏Hugging Face2026-05-02 更新2026-05-03 收录
下载链接:
https://huggingface.co/datasets/rustmizan-org/mizan-vanilla
下载链接
链接失效反馈官方服务:
资源简介:
RustMizan(阿拉伯语意为“天平”或“平衡”)是一个可编译、污染感知的基准数据集,用于Rust漏洞分析。该数据集包含42个真实世界Rust内存安全CVE的173个独立可编译变体,分为三个上下文级别(crate、file、function)。每个变体作为一个独立行存储,包含样本ID、漏洞ID、crate名称、粒度级别(crate/file/function)、披露年份、漏洞状态(预修补/后修补)、CWE类型列表、漏洞函数列表(文件路径→函数签名)、漏洞行列表(文件路径→行号)以及所有源文件内容(文件路径→内容)。该数据集支持四项主要任务:1)漏洞检测(二元分类);2)CWE分类(多标签);3)函数级定位;4)行级定位。数据集源自RustSec安全公告数据库,经人工处理为多级可编译变体,所有标注均经过同行评审。数据集规模适中(42个CVE的173个变体),专注于内存安全漏洞(如释放后使用、缓冲区溢出等),适用于漏洞分析研究和LLM评估基准。数据集采用CC-BY-4.0许可,内嵌源代码遵守原始许可证(通常为MIT或Apache-2.0)。
RustMizan (Arabic for balance or scale) is a compilable, taint-aware benchmark dataset for Rust vulnerability analysis. The dataset contains 173 independently compilable variants of 42 real-world Rust memory safety CVEs, categorized into three context levels (crate, file, function). Each variant is stored as an independent row, containing sample ID, vulnerability ID, crate name, granularity level (crate/file/function), disclosure year, vulnerability status (pre-patch/post-patch), list of CWE types, list of vulnerable functions (file path → function signature), list of vulnerable lines (file path → line number), and all source file contents (file path → content). The dataset supports four main tasks: 1) vulnerability detection (binary classification); 2) CWE classification (multi-label); 3) function-level localization; 4) line-level localization. The dataset is derived from the RustSec advisory database, manually processed into multi-level compilable variants, with all annotations peer-reviewed. The dataset is moderately sized (173 variants from 42 CVEs), focusing on memory safety vulnerabilities (e.g., use-after-free, buffer overflow, etc.), suitable for vulnerability analysis research and LLM evaluation benchmarks. The dataset is licensed under CC-BY-4.0, with embedded source code adhering to original licenses (typically MIT or Apache-2.0).
创建时间:
2026-05-02
原始信息汇总
RustMizan 数据集详情
数据集概述
RustMizan 是一个针对 Rust 内存安全漏洞分析的基准数据集,包含 173 个可独立编译的变体,来源于 42 个真实世界的 Rust 内存安全 CVE。数据集以三个上下文级别(crate、file、function)打包,提供 vanilla 版本(未应用任何变异)。
数据集信息
| 属性 | 值 |
|---|---|
| 许可证 | CC-BY-4.0 |
| 语言 | 代码(Rust) |
| 任务类别 | 文本分类、标记分类 |
| 标签 | Rust、漏洞检测、CWE、安全、LLM评估、基准、代码 |
| 数据集大小 | n < 1K |
| 配置 | 默认配置(训练集) |
数据字段说明
每条数据是一个独立的可编译变体,代表一个 CVE 在某个上下文级别下的实例:
| 字段 | 描述 |
|---|---|
sample_id |
样本标识 |
vuln_id |
漏洞标识(CVE ID) |
crate_name |
Rust 包名称 |
granularity |
上下文粒度:crate、file、function 之一 |
year |
CVE 披露年份 |
is_vulnerable |
是否为易受攻击版本(true=补丁前,false=补丁后) |
cwe_type |
CWE 标识符列表(如 CWE-416) |
vulnerable_functions |
易受攻击的函数映射(文件路径 → 函数签名列表) |
vulnerable_lines |
易受攻击的代码行映射(文件路径 → 行号列表) |
files |
变体中所有源代码文件(文件路径 → 内容 对) |
注意:当
is_vulnerable == false时,vulnerable_functions和vulnerable_lines为空。
支持的任务
基准测试旨在支持 Rust 漏洞分析的完整流程:
- 漏洞检测 —— 基于
is_vulnerable的二分类 - CWE 分类 —— 基于
cwe_type的多标签分类 - 函数级定位 —— 预测文件 → 函数签名映射
- 行级定位 —— 预测文件 → 行号映射
数据加载方式
python from datasets import load_dataset ds = load_dataset("rustmizan-org/mizan-vanilla", split="train")
负责任 AI 说明
局限性
- 规模较小:42 个 CVE 覆盖 173 个可编译变体
- 补丁前后标签假设补丁完全解决了问题,但在部分情况下不成立
偏差
- 仅限于 RustSec 公告中标记为内存安全的 Rust 子集
- 集中在 use-after-free、缓冲区溢出、double-free 类型
- 披露时间分布在 2018–2025 年
- 不涵盖其他语言、非内存安全漏洞类型或生产级代码库
数据源
- 易受攻击的 Rust crate 来源于 RustSec 公告数据库
- 手动缩减为多级可编译变体(crate、file、function)
- 使用
rustc 1.84.1编译验证 - 注释基于 CVE 描述、GitHub 讨论、提交信息和代码审查,且每条注释至少经一名额外研究人员同行评审
社会影响
- 支持对安全关键语言进行更严谨的 LLM 漏洞分析评估
- 配套变异框架允许用户按需生成新的变异变体,避免固定公共数据集被未来 LLM 训练语料库吸收
配套代码
论文评估管线(RQ1–RQ4)、Rust 变异框架以及 Kani / RAPx 演示代码已匿名发布,代码仓库地址:https://anonymous.4open.science/r/rust-mizan-neurips
论文中使用的变异变体(良性、恶性、Rust 特定)未单独托管,可通过运行该变异框架从本数据集重新生成。
搜集汇总
数据集介绍

构建方式
RustMizan基准数据集(vanilla版本)以42个真实世界的Rust内存安全CVE漏洞为根基,通过精密的编译验证流程,构建了173个独立的可编译变体。这些变体覆盖三种上下文粒度——crate、file与function,每一行记录均包含sample_id、vuln_id、crate_name、granularity、year、is_vulnerable及cwe_type等字段。漏洞标注信息源自CVE描述、GitHub讨论、提交日志与代码审查,并由至少一位额外研究者进行同行评审,确保了标注的可靠性。数据以Parquet格式存储,保持了高效加载与结构化访问的特性。
使用方法
使用者可通过HuggingFace datasets库一行代码加载数据:'from datasets import load_dataset; ds = load_dataset("rustmizan-org/mizan-vanilla", split="train")'。该数据集适用于训练与评估大语言模型在Rust安全分析上的表现。基准的配套代码仓库提供了完整的Python评估流水线(涵盖论文中的RQ1至RQ4结果)、Rust突变框架以及Kani/RAPx演示。用户如需生成论文中用到的突变变体,可运行代码仓库中的Docker构建脚本(docker/Dockerfile.datasets),该容器会自动化生成所有四个数据分片。
背景与挑战
背景概述
RustMizan(mizan-vanilla)是一个面向Rust语言内存安全漏洞分析的可编译、抗污染基准数据集,由匿名研究团队提交至NeurIPS 2026评估与数据集轨道(审稿中)。该数据集于2025年发布,针对Rust生态中内存安全缺陷检测的迫切需求而构建。Rust语言虽以内存安全著称,但unsafe代码块及复杂的所有权模型仍引入漏洞风险,现有基准多聚焦于C/C++,缺乏对Rust专用漏洞模式的系统评估。RustMizan基于RustSec安全公告库,精选42个真实世界CVE,生成173个可编译变体,覆盖crate、文件、函数三种粒度,并提供漏洞检测、CWE多标签分类、函数级与行级定位四项任务,为大型语言模型在安全关键领域的评估提供了标准化平台。
当前挑战
该数据集面临的核心挑战包括:其一,领域问题层面,现有漏洞检测基准多被LLM训练语料污染,且缺乏对Rust语言特有内存安全漏洞(如use-after-free、缓冲区溢出)的细粒度评估能力,亟需一个抗污染、多任务统一的 benchmark。其二,构建过程中,从RustSec公告库中人工筛选并还原42个CVE为可编译变体需深度依赖CVE描述、GitHub讨论及代码审查,标注工作经过至少两位研究者的交叉验证以确保准确性,但规模受限(仅173个变体),且漏洞类型集中于2018-2025年间的内存安全缺陷,对非内存安全缺陷或生产级代码库的泛化性不足。此外,预补丁/后补丁划分假设补丁彻底修复漏洞,可能忽略遗留问题,增加了评估的偏差风险。
常用场景
经典使用场景
RustMizan(mizan-vanilla)数据集专为Rust语言内存安全漏洞的细粒度分析而设计,其核心应用场景涵盖从整体检测到精准定位的完整漏洞分析流水线。研究人员可利用该数据集对大型语言模型(LLM)或传统静态分析工具进行二元分类性能评估,判断给定代码片段是否存在漏洞。更进一步,它支持多标签CWE分类任务,帮助模型识别具体漏洞类型(如use-after-free或缓冲区溢出)。在定位层面,该数据集提供了函数级和行级的精确标注,使研究者能够训练或评估模型在细粒度上定位漏洞的能力,从而推动从“是否危险”到“危险在何处”的深度分析。
解决学术问题
该数据集旨在解决Rust生态系统中缺乏高质量、可编译且防数据污染的漏洞分析基准这一长期痛点。以往许多代码漏洞数据集存在无法独立编译、依赖环境复杂或样本与训练数据重叠等问题,导致学术评估结果失真。RustMizan通过提供173个可独立编译的变体,确保了实验的可复现性;同时引入三层次上下文粒度(crate/file/function),使研究者能够系统探究上下文范围对检测精度的影响。其重大意义在于为Rust这一安全关键型语言建立了严格、标准化且抗污染的评估“标尺”,从而推动该领域从粗粒度、不可控的评测走向精细、严谨的科学范式。
实际应用
在实际工程中,RustMizan数据集可被集成到软件开发生命周期的安全审计流程中。例如,企业安全团队可利用该基准测试并对比不同LLM驱动的代码审查工具在Rust项目上的表现,以选择最适合自身代码库的漏洞检测方案。此外,基于该数据集训练的模型可嵌入到CI/CD流水线中,在代码合并前自动扫描新增代码,对疑似含有内存安全漏洞的部分进行函数级或行级预警。由于所有样本均可编译,开发者还能在沙箱环境中复现漏洞行为,从而理解根因并生成精准的修复建议,极大降低安全修复的试错成本。
数据集最近研究
最新研究方向
当前,RustMizan数据集聚焦于构建可编译、抗数据污染的Rust内存安全漏洞分析基准,推动大语言模型在代码安全领域的严谨评估。其前沿研究方向涵盖基于二元分类的漏洞检测、多标签CWE分类、函数级与行级漏洞定位等全流程任务。该数据集通过人工归约42个真实世界CVE的173个可编译变体,并配套突变框架以生成全新变体,有效规避数据污染问题,对评估LLM在安全关键语言(如Rust)上的真实能力具有重要影响。该基准支持跨粒度分析,为提升AI驱动代码审计的鲁棒性与可复现性提供了关键研究平台。
以上内容由遇见数据集搜集并总结生成



