遇见数据集

wallet-vuln-dataset

收藏
github2026-08-05 更新2026-08-06 收录
官方服务:

资源简介:

一个精选的加密货币钱包软件过去安全修复的语料库——包括自托管应用、硬件钱包固件、智能合约账户、MPC/TSS密钥管理以及每个钱包所依赖的签名库。

A curated corpus of past security fixes for cryptocurrency wallet software, including self-hosted applications, hardware wallet firmware, smart contract accounts, MPC/TSS key management, and the signature libraries upon which each wallet relies.

创建时间:
2026-07-29
原始信息汇总

数据集概述

wallet-vuln-dataset 是一个专注于加密货币钱包软件历史安全修复的精选语料库,涵盖自托管应用、硬件钱包固件、智能合约账户、MPC/TSS 密钥管理以及签名库等。每个条目代表一个历史漏洞修复(合并的PR、提交、公告或CVE),并统一为单一 schema,按安全相关性评分,并按证据强度分级。

核心数据规模

指标 数量
原始快照(所有仓库) 90,223 行
精选(仅安全) 27,826 行
核心切片(A_authoritative ∪ B) 18,790 行
  • 按层级:A_authoritative 1,424 · A_dependency 628 · B_corroborated 17,366 · C_candidate 8,408
  • 按置信度:high 9,121 · medium 16,637 · low 2,068
  • 按严重性:Critical 1 · High 228 · Medium 848 · Low 50 · Info 10,068 · Unrated 15,544
  • 带 STRIDE 类别(非 Other):6,531 行(23%)
  • 带 CWE-Top-25 ID:6,162 行(22%)
  • 仅由 LLM 静默修复分类器识别:1,087 行

96% 的行是 Info 或 Unrated,因为几乎没有任何钱包修复被正式评级。Unrated 不代表低影响,而是缺少评级者。

背景动机

以太坊客户端约 98–100% 的漏洞被静默修复。钱包更严重:钱包不运行网络,而是发布应用商店更新,因此通常没有公告、CVE 或发布说明。对注册表中全部 181 个仓库的 GitHub 安全公告进行爬取,仅获得 16 条已发布公告,167 个仓库(92%)零公告,而同一批仓库中安全相关的 PR/Issue 行有 5,299 条,非公告与公告的比例为 331:1

因此数据集使用 CVE/GHSA 仅作为校准爬取的骨架,语料本身通过提交历史恢复:关键词门控提交 grep、未标记("隐形")的触及托管敏感路径的 PR、以及基于 diff 的 LLM 静默修复分类器。

范围

当仓库中的缺陷可能导致用户损失资金、密钥材料或签名权限时,该仓库即纳入范围。共 181 个仓库

按类别 数量 按托管模型 数量
钱包 SDK / 库 50 自托管 65
浏览器扩展 26 库(无托管) 55
移动端 24 智能合约账户 27
智能合约账户 22 MPC / 阈值 / 无种子 19
MPC / TSS / 无种子 19 硬件(安全元件) 15
桌面端 17
硬件固件 10
节点钱包 7
连接基础设施 6

闭源钱包(Phantom、Exodus、Binance Web3、OKX、Bitget、SafePal、交易所托管方)因无提交历史而被排除,并记录在 docs/limitations.md 中。

托管威胁模型

严重性依据缺陷对用户的代价,而非 CVSS:

分组 缺陷含义
key_material 种子/密钥泄露、弱生成或残留在内存中
signing 签名未经用户批准而有效
approval 未触及密钥即获得花费权限
transport dapp↔钱包通道允许未授权来源进入
ui_deception UI 误导导致用户批准错误内容
platform OS/浏览器逃逸触及密钥库
contract 智能账户自身的验证可被绕过
mpc 阈值协议泄露份额、使 nonce 偏差或允许攻击者组法定人数
memory 固件/原生核心的经典内存破坏
supply_chain 依赖或更新渠道成为攻击面

特别覆盖两种以太坊客户端语料库没有对应的托管模型:

  • 无种子/嵌入式钱包(Privy、Web3Auth、Openfort、Para、thirdweb、Magic、Turnkey、Dfns)——用户通过电子邮件或 OAuth 登录,密钥在设备、提供商和恢复因子之间拆分。
  • Passkey/生物识别钱包(Coinbase Smart Wallet、webauthn-sol、p256-verifier、Clave、passkey-kit)——签名权限依赖于 Face ID / Touch ID 等平台认证器,未校验的 clientDataJSON 解析或未检查的用户验证标志构成直接签名绕过。

修复主题分布

每个行携带 label,表示托管链中出问题的部分:

  • key:seed-mnemonic 3,304
  • key:storage 2,831
  • network-io 2,328
  • sign:encoding-malleability 1,354
  • build-ci 1,154
  • test 890

91% 的行包含内联的 pre_fix_code / post_fix_code(修复前后代码片段),95% 的行包含 files_changedfix_commit 解析率为 100%

数据文件

文件 大小 说明
data/wallet_vulns.parquet 79 MB 主数据集,含全部列(含内联修复前后代码)
data/wallet_vulns.preview.csv 4.9 MB 5 个关键列,可在 GitHub 上浏览
data/raw/train.classified.parquet 31 MB 门控前快照,用于复现筛选
data/manifest.json 各阶段丢弃计数和修订统计

完整 CSV 导出(255 MB)超出 GitHub 100 MB 限制,可用如下命令重新生成:

python pd.read_parquet("data/wallet_vulns.parquet").to_csv("wallet_vulns.csv", index=False)

内联代码每行上限为 8 KB 和 12 个文件。

凭据脱敏

由于语料逐字引用提交文本且内容为安全修复,包含硬编码测试种子的提交会被处理。所有发布列在写入前将机密内容掩码为 XXXXXXX(助记词、xprv/WIF/原始十六进制私钥、PEM 块、云/API 令牌),而提交 SHA、锁文件完整性哈希和公钥保留。本次构建掩码了 69 个助记词、21 个原始十六进制私钥、2 个 xprv、1 个 WIF 密钥和 12 个云令牌。

复现

精选表可从原始快照确定性生成(无需网络或 API 密钥):

bash uv run python pipeline/build_security_dataset.py --in data/raw/train.classified.parquet --out data/wallet_vulns.parquet uv run --with pytest python -m pytest tests/ -q

重新爬取原始快照受网络限制(全部 181 个仓库约需 24 小时,受 GitHub 每分钟 30 次搜索请求限制)。

仓库结构

  • collection/ — 仓库注册表(wallets.py)、威胁词汇表、爬虫、流水线脚本
  • pipeline/ — 确定性门控与分级、标签/根因/攻击路径/修复前后代码富化
  • scripts/ — 从已有爬取重建数据集
  • tests/ — 质量门控 + 每个已发布 bug 的回归测试
  • docs/ — 方法论、局限性、各切片测量产出
  • data/ — 主数据集、原始快照、manifest

许可

数据:CC-BY-4.0(源自各钱包自己的公共仓库);collection/pipeline/ 下的代码:MIT。

搜集汇总
数据集介绍
wallet-vuln-dataset 数据集图片
构建方式
该数据集聚焦于加密钱包软件的历史安全修复,涵盖自托管应用、硬件钱包固件、智能合约账户、MPC/TSS密钥管理及签名库等广泛领域。其构建基于对181个仓库的全面爬取,通过关键词提交检索、未标记PR分析及LLM静默修复分类器,从提交历史中恢复漏洞修复记录。每条记录均被标准化为统一模式,并依据证据强度划分为A、B、C四个层级,同时进行严重性分级、STRIDE分类及CWE Top-25标注。数据经多阶段去噪处理,最终形成包含27,826条安全相关记录的精炼语料库,其中18,790条为核心切片,另附修复前后的内联代码片段。
使用方法
数据集以Parquet格式提供,用户可通过Pandas轻松加载和筛选,例如根据权威层级或置信度选取高质量子集。核心切片(A_authoritative与B_corroborated)适用于关键安全分析,而完整数据集则可用于训练漏洞检测模型或研究钱包安全趋势。内置的预修复与后修复代码对便于进行补丁分析,而元数据中的标签、根因和攻击路径为深入调查提供支撑。用户可通过提供的脚本复现整个构建流程,或使用CSV导出功能集成到现有工作流中。数据集遵循CC-BY-4.0许可,支持学术与商业应用。
背景与挑战
背景概述
钱包漏洞数据集(wallet-vuln-dataset)于2024年由NyxFoundation团队创建,旨在系统性地收集和整理加密钱包软件的历史安全修复记录,涵盖自助托管应用、硬件钱包固件、智能合约账户、MPC/TSS密钥管理及签名库等关键组件。该数据集的核心研究问题在于,传统基于CVE/GHSA的漏洞数据库严重低估了钱包领域的安全风险——研究表明,181个目标仓库中仅有16条已发布的安全公告,而实际安全修复事件与公告之比高达331:1。为此,研究团队采用了创新的方法论,从提交历史中挖掘“静默修复”,并利用LLM分类器识别非显式安全补丁,构建了包含27,826条经人工审核的安全修复记录的高质量语料库。该数据集已在该领域产生重要影响,为钱包安全研究提供了首个可复现的基准,支持更准确的风险评估和漏洞模式分析。
当前挑战
该数据集构建过程中面临多重挑战。首要挑战是数据稀缺性:绝大多数钱包项目(92%)从未发布过安全公告,迫使研究依赖提交历史挖掘,但GitHub的搜索API速率限制(30次/分钟)使完整抓取181个仓库耗时约24小时。其次,噪声过滤极为复杂,需通过多阶段去噪流程(T0至GATE)处理90,223条原始记录,最终仅保留27,826条安全相关修复,其中47,524条因无安全信号被剔除。此外,严重性评级体系缺失,96%的修复未获官方评级,需引入自定义的保管威胁模型(如密钥材料、签名、供应链接)进行分类。技术性挑战还包括多仓库单体提交导致的数据体积过大,需要设置单行8KB和12文件的截断上限,以规避Parquet写入的2GB限制。最后,数据隐私处理不可忽视,需对提交中包含的助记词、私钥等敏感凭证实施系统脱敏,同时保留完整的安全上下文。
常用场景
经典使用场景
wallet-vuln-dataset作为首个聚焦于加密货币钱包软件安全修复的综合性语料库,为安全研究领域提供了前所未有的数据基础。该数据集涵盖181个开源仓库,包含27,826条经过精心筛选的安全修复记录,每一条均标注了严重程度、置信度、STRIDE分类及CWE-Top-25标识等关键属性。研究者可借助其标准化模式,对自我托管应用、硬件钱包固件、智能合约账户及MPC/TSS密钥管理等多类托管模型进行系统性的漏洞模式挖掘与修复策略分析,为构建更稳健的钱包安全防护体系奠定坚实基础。
解决学术问题
该数据集直面加密货币钱包漏洞修复缺乏透明性这一长期困扰学界的核心问题。传统CVE列表在钱包安全领域存在极端稀疏性——全部181个仓库仅有16条已发布公告,92%的仓库甚至零公告,导致基于公告驱动的漏洞研究近乎失效。此数据集通过从提交历史中恢复被静默修复的安全缺陷,实现了331:1的公告外漏洞捕获比率,首次为学术界提供了可量化、可复现的钱包安全缺陷全景,有效填补了该领域大规模实证研究的空白,为验证安全假设、评估修复质量及理解托管威胁模型提供了可靠依据。
实际应用
在实际应用层面,该数据集为钱包开发商、安全审计机构及依赖钱包服务的金融科技企业提供了直接的工程价值。开发者可借助包含修复前后代码片段的语料库,快速定位自身代码库中潜在的同源缺陷;安全团队能够基于严重度分层与权威等级筛选机制,优先处理高风险项,显著提升漏洞排查效率。此外,数据集中对预言机静默修复分类器的采纳,以及密钥材料、签名、授权等十类托管威胁模型的细致划分,为自动化安全测试、供应链风险评估及安全编码规范的制定提供了切实可操作的参考基准,推动了钱包安全工程实践的发展。
数据集最近研究
最新研究方向
该数据集聚焦于加密钱包软件安全修复的沉默漏洞挖掘,通过分析181个存储库的提交历史,识别出27,826个安全相关修复,其中96%无CVE或公告,揭示了传统CVE列表在钱包安全领域的严重盲区。研究前沿包括利用LLM分类器检测静默修复、构建托管威胁模型(如密钥材料泄露、签名绕过、MPC阈值协议攻击),并覆盖无种子和生物识别钱包等新型托管模式,为自托管资产保护提供了实证基础,推动了安全审计从公告驱动转向代码历史驱动的范式转变。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务