Web3 Vulnerability Database
收藏资源简介:
一个经过策划和机器验证的Web3漏洞类别数据库,以及用于从公开安全发现中构建它的工具集。
A curated and machine-validated database of Web3 vulnerability categories, along with the toolset for constructing it from public security disclosures.
Web3 漏洞数据库(Web3 Vulnerability Database)
本项目是一个经过机器验证的、精选的 Web3 漏洞类别数据库,专门面向安全研究人员和自动化审计工作流设计。它不是简单地复制原始漏洞报告,而是将多条安全发现作为证据,归纳提炼为通用的漏洞类别记录。
核心内容
数据库包含以下主要组成部分:
- Markdown 漏洞类别记录:带有经过验证的 YAML frontmatter 元数据
- 初始覆盖范围:涵盖清算(liquidation)、预言机(oracle)、会计(accounting)、借贷(lending)、治理(governance)、升级(upgrades)、外部回调(external callbacks)和跨链消息(cross-chain messaging)等漏洞类别
- 受控注册表:包括类别(category)和协议能力(protocol-capability)两类受控词汇表
- 数据摄入管线:基于 Bun/TypeScript 构建,支持从固定的 AuditVault 快照和 Solodit API 获取数据
- 确定性处理:提供确定性分类和重复候选报告功能
- 消费目录与摘要:包含顶层消费目录、逐记录和聚合的确定性摘要
- 查询与 API:提供可复用的加载器、适用性评估器、精确快照 API、确定性内存 SQLite 查询 API 以及
vulndb命令行接口
需要说明的是,原始 API 响应和规范化处理记录不纳入 Git 版本管理,提交的内容仅包含原始安全指导文本和公开来源引用。
环境要求
- 运行时:需要 Bun,版本由
.bun-version文件指定 - API 密钥:默认的 AuditVault 路径无需密钥;仅当使用 Solodit 查询包时才需要设置
SOLODIT_API_KEY - 安装:执行
bun install --frozen-lockfile安装依赖 - 检查命令:提供
bun run check、bun test、bun run schema:check等一组完整的仓库检查命令
数据摄入
数据库支持两种数据源:
- 默认路径(AuditVault):使用
perpetuals-auditvault查询包,从 AuditVault 的精确 Git 提交中选取衍生品(perpetuals)相关证据,无需 API 密钥。流程为db probe→db fetch→db build --run <run-id>。 - Solodit API 路径:显式使用
perpetuals查询包,需要设置SOLODIT_API_KEY环境变量。
两个数据包均覆盖保证金(margin)、清算(liquidation)、定价(pricing)、资金费率(funding)、自动减仓(auto-deleveraging)、保险(insurance)、签名订单(signed orders)、结算(settlement)、恢复(recovery)和代币集成(token integration)等主题。
查询方式
提供 db search、db show、db select 和 db taxonomy 等命令,支持使用类型化分类选择器或受控简写别名进行查询。例如:
bash bun run db search --category derivatives.liquidation --capability trading.perpetuals bun run db show derivatives.liquidation-no-progress --format
机器可读输出包含目录聚合和选定记录摘要;Markdown 输出会验证并保留记录原始字节。
类别编写规范
类别记录存放在 classes/ 目录下,frontmatter 包含身份信息、适用性、路由和来源元数据,详细安全知识则在 Markdown 正文中阐述。项目提供 docs/authoring.md 作为记录契约的规范文档。
消费者 API
提供 TypeScript 导入接口:
ts import { evaluateApplicability, loadDatabase, selectApplicableClasses, snapshotSelectedClasses, } from "@aviggiano/web3-vulnerability-database";
重要设计原则:未知能力的证据绝不意味着“经证实的缺席”。消费者应默认同时包含 applicable 和 uncertain 的记录,仅排除有证据支持为 inapplicable 的记录。
不可变检出版本对外暴露 database.yml、capabilities.yml、catalog.json、manifest.json 以及 classes/ 下的精确 Markdown 字节。
数据政策与许可
- API 凭据仅从
SOLODIT_API_KEY读取,且仅在 Solodit 的probe和fetch命令中使用 .work/目录存放原始源数据、Git 对象、API 响应和规范化数据,必须保持不被跟踪- 测试夹具为合成数据
- 类别正文为基于公开引用的原创摘要
- 重新分发原始源数据需另行进行许可审查
仓库编写的代码、模式、文档和类别文本采用 MIT 许可证;链接的源材料遵循其各自条款。





