mcpField
S
solidity-security-audit

solidity-security-audit

github.com/mariano-aguero安全673 次安装24 周前更新
代码仓库

关于 solidity-security-audit

solidity-security-audit 是用于审查 Solidity 智能合约并输出分级发现与修复建议的技能。它根据需求采用完整审计、快速检查、集成审查、复审或安全竞赛流程。

主要功能

  1. 01必要时先收集审计背景
  2. 02支持完整审计与快速检查
  3. 03审查集成和复审差异
  4. 04提供竞赛专用发现格式
  5. 05标注严重程度并给出修复建议
  6. 06依据协议进行威胁建模

适用场景

  1. 01审计 Solidity 合约或代码库
  2. 02针对先前审计复核修复
  3. 03为安全竞赛准备问题报告
  4. 04评估集成 DeFi 协议的合约

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mariano-aguero/solidity-security-audit-skill --skill solidity-security-audit

安装后在 Claude Code 中输入/solidity-security-audit确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
package.json
LICENSE
CLAUDE.md
README.md
.github/
CONTRIBUTING.md
CODE_OF_CONDUCT.md
FUNDING.yml
references/
INDEX-advanced.md
INDEX-tools.md
INDEX-defi.md
INDEX.md
INDEX-vulns.md
audit-questions.md
ai-code-patterns.md
automated-detection.md
account-abstraction.md
defi-integrations.md
diff-audit.md
glamsterdam.md
fusaka-eof.md
defi-checklist.md
industry-standards.md
intent-protocols.md
exploit-case-studies.md
invariants.md
move-security.md
l2-crosschain.md
prediction-markets.md
perpetual-dex.md

详细介绍

Solidity 安全审计技能

目的

按照全球领先 Web3 安全公司的成熟方法,执行专业级智能合约安全审计。提供可执行的发现,按严重程度分类,并附上修复建议。

收集上下文——代码提交时未提供范围

触发条件: 用户粘贴 Solidity 代码(一段函数、一个文件或仓库链接),但未提供其他上下文——未说明链、Solidity 版本、审计范围或此前审计信息。

请勿立即开始审计。缺少上下文会导致严重程度评级错误、发现无关问题(例如在仅针对主网的代码中指出 L2 问题),并造成精力浪费。开始之前,请在同一条消息中提出以下问题。

必需上下文(回答前暂停)

请以简短编号列表的形式提问——不要使用表单或表格:

Before I start the audit, I need a few details:

1. **Scope** — Is this the full codebase, a single contract, or a specific function?
   (Full codebase = I'll check cross-contract interactions; single function = focused review)

2. **Solidity version** — What compiler version are you targeting?
   (Affects: overflow behavior, PUSH0 compatibility, transfer()/send() deprecation in 0.9.0)

3. **Target chain(s)** — Where will this deploy?
   (Mainnet, L2 like Arbitrum/Base/zkSync, multi-chain, or unknown)

4. **Previous audits** — Has this code been audited before? Any known issues or recent changes?
   (If yes → Re-audit mode; if no → Full Audit)

5. **Protocol type** — What does this protocol do?
   (e.g., lending, AMM, vault, bridge, governance — determines which checklist to load)
用户无法回答时的默认值

如果用户说“直接检查”或未作答,请采用以下安全默认值,并在审计开始时明确说明:

问题默认值风险
范围用户提供的单个合约/函数可能遗漏跨合约问题
Solidity 版本最新稳定版(^0.8.x)可能遗漏特定版本的漏洞
目标链Ethereum 主网可能遗漏 L2 特有问题
之前的审计无——首次审查全面审计模式
协议类型通用 DeFi使用 defi-checklist.md 中的通用 DeFi 检查项
快速路径——仅粘贴单个函数

当用户粘贴一个独立函数(≤30 行,且没有可见的合约状态或构造函数)时,跳过上下文问题,直接执行快速扫描。说明:

“正在单独审查此函数。如需全面审计,包括状态变量、访问控制和跨合约交互,请提供完整合约。”

然后输出:按严重程度标记的项目符号列表(仅包含严重/高危问题;如果没有,则包含中危问题)。


选择审计模式

开始前,确定审计模式:

模式适用情况入口
全面审计首次审查代码库以下阶段 1–5
复审/差异审计已有先前审计;团队已修复问题或新增功能references/diff-audit.md
集成审查合约集成 Uniswap、Chainlink、Aave、Curve 等references/defi-integrations.md + 阶段 3
快速扫描快速评估,时间有限references/quick-reference.md——简化阶段 0(最多 5 分钟),仅执行阶段 1–2;阶段 3 重点检查 quick-reference.md 中的严重/高危模式。输出: 仅列出严重/高危问题;每项包括:严重程度标签、位置(File.sol#L)、一行描述和修复建议。不要求完整报告结构。
竞赛向 Code4rena、Sherlock、Immunefi、Cantina 或 CodeHawks 提交参见下文的竞赛模式部分——平台专属输出格式、策略和有效性规则

如需随时了解严重程度分类指南,请查阅 references/severity-decision-tree.md。


竞赛模式

在用户提及以下内容时启用: “Code4rena”、“C4”、“Sherlock”、“Immunefi”、“Cantina”、 “CodeHawks”、“Cyfrin”、“warden submission”、“Watson submission”、“bug bounty submission”、 “audit contest”、“audit competition”、“contest finding”或“submit to contest”。

步骤 0 — 识别平台
平台模型奖励结构使用的严重程度
Code4rena竞争型H/M 分池;Low = QA 奖励池;Gas = Gas 奖励池H / M / Low / NC / Gas
Sherlock竞争型H/M 分池;Low = 不奖励仅 H / M(有奖励)
Immunefi漏洞赏金按严重程度分级固定奖励Critical / High / Medium / Low
Cantina竞争型H/M/Low 奖励等级Critical / H / M / Low / Info
CodeHawks / Cyfrin竞争型与 C4 类似H / M / Low / Info / Gas

识别平台后,严格采用 references/report-template.md → Contest Submission Format 中的提交格式。

步骤 1 — 验证范围

开始审查前:

  • 阅读竞赛仓库中的 README、scope.txt 和已知问题列表
  • 标记所有超出范围的合约——在这些合约中发现的问题会立即失效
  • 记录“管理员可信”及其他会排除整个漏洞类别的协议假设
  • 检查是否已有机器人提交相关报告(C4 机器人会报告浮动 pragma、缺少零值检查、未检查的返回值——请避免这些问题)
步骤 2 — 优先级排序(竞赛投资回报率)

竞赛奖励独特且影响重大的发现。请据此分配审查时间:

最高投资回报率 → 将 70% 的时间用于此类问题:

  • 重入(所有变体,尤其是跨函数重入和只读重入)
  • 预言机操纵(现货价格、绕过 TWAP、过期数据源)
  • 特权函数的访问控制漏洞
  • 业务逻辑错误(费用计算错误、状态机违规、差一错误)
  • 经济攻击(闪电贷攻击途径、滑点、MEV)

中等投资回报率 → 投入 25% 的时间:

  • 整数精度 / 舍入方向
  • 缺少输入验证(零地址、边界值——仅限可利用的情况,而非机器人常报的问题)
  • DoS 攻击途径(无界循环、造成实际影响的骚扰攻击)
  • 签名重放 / EIP-712 错误

低投资回报率——除非可以轻松补充,否则跳过:

  • Gas 优化(仅限竞赛设有 Gas 奖励池的情况)
  • 代码风格、命名(NC / Info → 大多数平台不予奖励)
  • 已列为已知问题的发现
步骤 3 — 有效性预检查

撰写每项发现前,请使用以下筛选条件:

Is there a working attack path an external actor can execute?
├─ No → Invalid (likely rejected)
│
Is the root cause inside the contest scope?
├─ No → Out of scope (invalid)
│
Does the impact require a trusted role (admin, owner)?
├─ Yes, and admin is listed as trusted → Low at best (often invalid)
│
Can the impact be quantified in USD?
├─ Yes → always include the estimate (judges weight concrete impact)
├─ No → describe the qualitative harm precisely
│
Is there a working PoC?
├─ H/M without PoC → likely downgraded or rejected
├─ Build a Foundry test before writing the report
步骤 4 — 平台专属规则

Code4rena:

  • 每项 H/M 问题均作为独立的 GitHub issue;QA 问题合并到一份 QA 报告中
  • 重复问题 = 根本原因相同(而非症状相同)→ 分摊奖励池
  • 附带 PoC 的独特发现奖励最高;罕见漏洞越早发现越有优势
  • 每项发现都要链接到精确的 GitHub 永久链接(使用 commit hash,而非分支)
  • 尽可能在缓解措施中使用 diff 格式

Sherlock:

  • 必须严格采用前置条件模板:“Internal pre-conditions” + “External pre-conditions”
  • admin is trusted = 管理员滥用类发现无效(甚至不算 Low)
  • 仅“损失 1 wei” = 无效;必须造成有实际意义的美元损失或重大干扰
  • 升级期:Senior Watson 会审查 Watson 提交的升级申诉;若认为裁判有误,请提出申诉
  • 有效状态必须在 PoC 交易后持续存在(不能在下一个区块重置)

Immunefi:

  • 漏洞赏金:先私下披露;修复前不得公开披露
  • Critical/High 必须提供可运行的 PoC;如果描述清晰,Medium 可能可以接受
  • 影响必须真实存在:“理论上”或“最理想情况下”的攻击通常会被拒绝
  • 请注明:受影响的产品版本、环境(主网 / 测试网)、复现步骤
  • 不要采用竞赛提交格式——请使用私密披露渠道

Cantina / CodeHawks:

  • 结构与 C4 类似;需包含 Context: 字段,并注明精确的文件和行号
  • CodeHawks 除综合 Severity 外,还要求明确标注 Likelihood 和 Impact
步骤 5 — 输出

使用 references/report-template.md → Contest Submission Format 中针对各平台的确切格式。

不要使用私人审计报告格式(不包含执行摘要、范围章节或附录)。

每条发现都必须独立成篇,且应能单独理解。 评委要阅读数百条发现,因此请在第一句话中优先说明影响。


完整审计工作流

按以下顺序执行审计。每个阶段都以前一阶段为基础。

阶段 0 — 威胁建模

按协议类型审计 — 快速路由

协议类型主要参考资料DeFi 检查清单章节关键案例研究
AMM / DEXdefi-integrations.md §Uniswapdefi-checklist.md §AMMCurve、Cork Protocol
借贷defi-integrations.md §Aavedefi-checklist.md §LendingEuler、Abracadabra
Vault / Yield(ERC-4626)defi-integrations.md §ERC-4626defi-checklist.md §Vault—
Bridge / 消息传递l2-crosschain.mddefi-checklist.md §BridgeNomad、Wormhole
治理 / DAOvulnerability-taxonomy.md §15defi-checklist.md §GovernanceBeanstalk、Compound
永续 DEXperpetual-dex.mddefi-checklist.md §PerpHyperliquid HLP
LST / 再质押staking-consensus.mddefi-checklist.md §RestakingBybit
Uniswap V4 Hookdefi-integrations.md §V4-Hooksdefi-checklist.md §V4-HooksCork Protocol
ZK / Rollupzkvm-specific.mdl2-crosschain.md §ZK—
账户抽象account-abstraction.mdaudit-questions.md §AA—
AI 生成代码ai-code-patterns.mdaudit-questions.md §AIBybit(供应链)
意图 / Solverintent-protocols.mddefi-checklist.md §Intents—
CeDeFi / Syntheticvulnerability-taxonomy.md §4.7defi-checklist.md §CeDeFixUSD($285M)
RWA / 代币化资产rwa-protocols.mddefi-checklist.md §RWA—
期权 / 结构化产品options-protocols.mddefi-checklist.md §OptionsDeus DAO、Lyra AVAX
预测市场prediction-markets.mddefi-checklist.md §PredictionPolymarket UMA 争议、Augur REP
多签 / Safe 模块safe-modules.mddefi-checklist.md §SafeRadiant Capital
Move / Sui / Aptosmove-security.md—(补充)Cetus($223M)

在查看代码之前,先在脑海中建立协议功能及其可能出现的经济风险模型。这有助于确定阶段 3 的投入重点。

  1. 梳理参与方:谁会与该协议交互?

    • 无特权用户、流动性提供者、借款人
    • 特权角色:管理员、guardian、keeper、费用接收方
    • 外部参与方:MEV 机器人、闪电贷攻击者、清算人、治理参与者
  2. 找出核心资产:哪些资产或权利面临风险?

    • 锁定在协议中的用户资金
    • 协议自有储备金或保险基金
    • 治理控制权(升级、更改参数或提取资产的能力)
  3. 定义关键不变量:哪些条件绝不能不成立?

    • 偿付能力:总负债 ≤ 总资产
    • 账目核算:各个余额之和 = 跟踪的总额
    • 访问控制:只有经授权的调用者才能执行特权操作
  4. 追踪信任边界:该协议信任哪些外部系统?

    • 预言机(Chainlink、TWAP、自定义)
    • 外部协议集成(Uniswap、Aave、Curve)
    • 跨链桥 / 消息传递层(LayerZero、CCIP、Wormhole)
    • 多签签名者或治理机制
  5. 评估 MEV 攻击面:哪些操作会带来可获利的交易排序机会?

    • 清算、套利、可被夹击的交换
    • 可被抢先执行的揭示、领取或结算操作
  6. 记录升级 / 管理员权限的影响范围:如果管理员密钥或多签被攻破, 最大损失会有多大?是否设有时间锁?是否有暂停机制?

输出:用 5–10 行威胁摘要,聚焦阶段 3 手动审查中价值最高的攻击路径。仅 Quick Scan 模式可跳过此步骤。

阶段 1 — 侦察
  1. 确定 Solidity 版本、编译器设置和框架(Hardhat/Foundry)
  2. 梳理合约架构:继承树、库的使用情况、外部依赖项
  3. 确定协议类型(DeFi 借贷、AMM、NFT、治理、桥、金库等)
  4. 确定信任模型:有哪些特权角色?它们可以执行哪些操作?
  5. 列出所有外部集成(预言机、其他协议、代币标准)
阶段 2 — 自动化分析

如果环境中有可用工具,请按以下顺序运行:

# Static analysis
slither . --json slither-report.json

# Compile and test
forge build
forge test --gas-report

# Custom detectors (if Aderyn is available)
aderyn .

如果没有可用工具,请执行手动静态分析,覆盖这些工具检查的相同类别。详情请阅读 references/tool-integration.md。

阶段 3 — 手动审查(核心)

最有价值的发现来自这一步。请系统地遵循 references/vulnerability-taxonomy.md 中的漏洞分类。

导航: 加载 references/INDEX-vulns.md,快速查找特定漏洞类型或安全模式对应的文件和章节。对于 DeFi 专题,请改为加载 references/INDEX-defi.md。完整的分类指南请参阅 references/INDEX.md。

最高优先级 — 首先检查以下问题:

  • 重入(所有变体:跨函数、跨合约、只读)
  • 访问控制缺陷(缺少修饰符、角色检查不正确、初始化器未受保护)
  • 预言机价格操纵(使用现货价格、依赖单一预言机、绕过 TWAP)
  • 闪电贷攻击向量
  • 代理/升级漏洞(存储冲突、实现合约未初始化、UUPS 缺口)
  • 未检查的外部调用和返回值
  • ERC-7702 委托风险(如果存在 EOA 或授权元组:恶意委托目标、过期授权重放、随机数竞争、委托代码重新初始化)——参见 references/vulnerability-taxonomy.md §17

高优先级:

  • 整数溢出/下溢(0.8.x 之前的版本或 unchecked 块)
  • 业务规则中的逻辑错误(代币铸造、奖励计算、费用分配)
  • 抢跑和 MEV 风险(夹击攻击、依赖交易排序)
  • 拒绝服务攻击向量(Gas 消耗攻击、无界循环、区块 Gas 限制)
  • 签名重放和可塑性
  • 对不可信合约执行 Delegatecall

中优先级:

  • 影响可用性的 Gas 优化问题
  • 状态变更缺少事件发出
  • 中心化风险和单点故障
  • 对时间戳的依赖
  • 浮动 Pragma 版本
  • 缺少零地址检查

低优先级 / 仅供参考:

  • 代码风格和可读性
  • 未使用的变量和导入
  • 缺少 NatSpec 文档
  • 冗余的代码模式
阶段 4 — DeFi 专项分析

审计 DeFi 协议时,请应用 references/defi-checklist.md 中的专项检查清单。加载 references/INDEX-defi.md,以查找特定协议的条目和不变量测试。重点领域:

  • 借贷协议:清算逻辑、抵押率操纵、坏账情形
  • AMM/DEX:滑点保护、价格影响计算、LP 代币记账
  • 金库/收益:份额价格操纵(通胀攻击)、提现队列逻辑
  • 跨链桥:消息验证、重放保护、验证者信任假设
  • 治理:投票操纵、闪电贷治理攻击、绕过时间锁
  • 质押:奖励计算精度、质押/解除质押时机攻击
  • RWA 协议:加载 references/rwa-protocols.md,检查 NAV 预言机信任、分层记账、按周期赎回、KYC 转账限制、违约处理
  • 期权协议:加载 references/options-protocols.md,检查结算预言机操纵、IV 攻击、抵押品/保证金、金库策略风险、多腿收益计算正确性
  • 预测市场:加载 references/prediction-markets.md,检查结果判定预言机信任、CTF 拆分/合并逻辑、AMM 定价边界、市场创建攻击、结果判定时的时机/MEV
  • Safe 模块/多签:加载 references/safe-modules.md,检查模块安装生命周期、delegatecall 存储冲突、绕过 guard 的途径、回退处理器攻击、社交恢复、Zodiac 框架模式
阶段 5 — 报告生成

使用以下格式编写每项发现:

## [SEVERITY-ID] Title

**Severity**: Critical | High | Medium | Low | Informational
**Category**: (from vulnerability taxonomy)
**Location**: `ContractName.sol#L42-L58`

### Description
Clear explanation of the vulnerability, why it exists, and what an attacker could do.

### Impact
Concrete description of damage: funds at risk, protocol disruption, data corruption.

### Proof of Concept
Step-by-step exploit scenario or code demonstrating the issue.

### Recommendation
Specific code changes to fix the vulnerability. Include example code when possible.

按照 Immunefi、Code4rena 和 Sherlock 使用的标准评定严重性:

严重性标准
严重直接损失资金、协议遭到永久性破坏、绕过所有访问控制
高有条件的资金损失、重大协议中断、权限提升
中间接损失、影响有限且需要特定条件、需要付出成本的骚扰攻击
低轻微问题、违反最佳实践、理论上的边缘情况
信息性代码质量、Gas 优化、文档缺失

必须遵循的关键模式

检查-生效-交互(CEI)

所有会修改状态并进行外部调用的函数都必须遵循 CEI。 确认状态变更在任何外部调用之前发生。

拉取优于推送

优先采用提现模式,而不是直接转账。让用户自行领取,而不是自动向其推送资金。

最小权限

每个函数都应仅具备所需的最低访问级别。优先使用基于角色的访问控制(OpenZeppelin AccessControl),而不是单一所有者模式。

深度防御

不得仅依赖单一安全机制。应结合使用重入防护、访问控制、输入验证和不变量检查。

参考资料

有关漏洞的详细说明、利用示例和修复模式,请参阅以下参考文件:

核心参考
  • references/vulnerability-taxonomy.md — 50 多种漏洞类型及代码示例
  • references/defi-checklist.md — 特定协议的检查清单(借贷、AMM、金库、跨链桥、代币)
  • references/industry-standards.md — SWC Registry、严重性分类、安全 EIP
  • references/quick-reference.md — 用于快速安全评估的单页速查表
审计指南
  • references/audit-questions.md — 针对各类函数的系统性问题
  • references/secure-patterns.md — 用于对照的安全代码模式
  • references/report-template.md — 专业审计报告格式
测试与工具
  • references/tool-integration.md — Slither、Echidna、Foundry、Halmos、自定义检测器
  • references/automated-detection.md — 用于自动扫描的正则表达式模式
  • references/poc-templates.md — 用于证明漏洞利用的 Foundry 模板
  • references/invariants.md — 用于测试的协议不变量
专项
  • references/l2-crosschain.md — L2 排序器风险、桥接安全、跨链模式
  • references/account-abstraction.md — ERC-4337 安全:账户、paymaster、bundler
  • references/exploit-case-studies.md — 真实攻击案例分析(DAO、Euler、Curve 等)
v2 新增
  • references/diff-audit.md — 重新审计与变更审查方法
  • references/severity-decision-tree.md — 结构化严重性分类决策树
  • references/defi-integrations.md — 安全集成模式:Uniswap v3/v4、Chainlink、Aave、Curve、Balancer
v3 新增
  • references/intent-protocols.md §8 — ERC-7683 跨链意图(已在 Base/Arbitrum 上线):填充者信任模型、参数替换、重复填充、结算最终性竞态
  • references/staking-consensus.md — Pectra 升级安全:EIP-7002(可触发的退出)、EIP-7251(MaxEB + 惩罚放大)、EIP-6110(链上存款)
  • references/industry-standards.md — 新增 OWASP 智能合约十大风险 2025 表格
v3.19.0 新增
  • references/move-security.md — 面向 Sui/Aptos/Movement 生态的 Move 语言审计补充:资源模型安全(能力不匹配、烫手山芋、能力令牌)、Sui 对象模型(所有权、版本控制、动态字段、PTB 组合)、Aptos 特有模式(资源账户、Fungible Asset 迁移、随机数 API)、字节码验证器的保证与不足、常见 Move 审计发现(能力泄漏、算术溢出、friend 滥用、泛型类型混淆)、跨虚拟机桥接安全(EVM ↔ Move 的小数位数/地址/供应量不匹配)、30 项 Move 审计清单
  • SKILL.md 触发条件:新增 8 个 Move/Sui/Aptos 关键词
  • SKILL.md Phase 0 路由表:新增 Move/Sui/Aptos 行
  • INDEX-advanced.md:Move 章节新增 8 个条目
v3.18.0 新增
  • references/fusaka-eof.md — EOF(EIP-7692,Fusaka)迁移与部署审计手册:编译器/工具支持矩阵(solc / Foundry --eof / Slither / Aderyn)、旧版 → EOF 迁移方案(重入保护、EOA 检测、动态跳转、基于 gas 的逻辑、SELFDESTRUCT 退款、CREATE2 工厂)、代理与升级决策矩阵(全 EOF / 全旧版 / 禁止混合 / 生命周期中迁移)、L2 多链部署注意事项(evmVersion 配置、PUSH0 事件模式、侧链兼容性)、审计工作流(审计前问卷、字节码魔数字节验证、报告模板)、30 项迁移审计清单(部署前 / 部署时 / 部署后)
v3.17.0 新增
  • references/staking-consensus.md §5 — Pectra 后续观察(2025 年 5 月至 2026 年年中):LST/LRT 协议适配情况(Lido、Rocket Pool、EtherFi、EigenLayer)、已观察到的事件与险情(没有重大攻击利用 Pectra 原语)、退出队列与验证者整合数据、10 项优化后的审计启发式清单(硬编码 32 ETH、0x01/0x02 前缀、双重惩罚)、7 个未解决的风险领域
v3.15.0 新增
  • references/poc-templates.md — ERC-7702 PoC 现代化:改用 Foundry 1.0+ cheatcode(vm.signDelegation、vm.attachDelegation、vm.signAndAttachDelegation),替代注释掉的调用;包含 4 个可运行测试:恶意委托盗取资产、跨链重放(chainId=0)、赞助交易沙箱逃逸、通过 address(0) 撤销委托
  • references/poc-templates.md — 新增 EOF 容器兼容性 PoC 章节(EIP-7692/Fusaka):旧版代理到 EOF 实现的 DELEGATECALL 故障、移除 SELFDESTRUCT 的安全模式、无效 EOF 容器验证、10 项 EOF 迁移审计清单、forge build --eof 和 forge test --eof 的 CLI 命令
v3.16.0 新增
  • references/severity-decision-tree.md — 为新兴漏洞类别新增 4 个决策树:EOF(EIP-7692/Fusaka)、ERC-7702(Pectra 授权列表委托)、瞬态存储(EIP-1153 TSTORE/TLOAD,包括 TSTORE 中毒和绕过 2300 gas 限制)、ZK-VM / 证明验证(验证器完备性、电路约束不足、排序器逃生出口、证明聚合)
v3.14.0 新增内容
  • references/safe-modules.md — Safe 模块、守卫和回退处理程序安全的深入参考:信任模型和代理架构、模块安装生命周期和链表操作、delegatecall 存储冲突(槽位映射 + ERC-7201 防御)、通过 execTransactionFromModule 绕过守卫(v1.4.1 之前)、回退处理程序 ERC-1271 重放、社交恢复时序攻击、Zodiac 框架模式(Reality Module 保证金经济学、Roles Modifier v2 作用域、Bridge/Connext Module 重放)、包含 42 项内容的全面审计清单
  • SKILL.md 第 0 阶段路由表:Safe Modules 行现在指向 safe-modules.md,而不是 vulnerability-taxonomy.md §25
  • SKILL.md 第 4 阶段:新增 Safe 模块加载说明
v3.13.0 新增内容
  • references/prediction-markets.md — 预测市场安全的深入参考:结果判定预言机信任模型(UMA 乐观预言机、Chainlink、中心化预言机、DAO)、CTF 拆分/合并头寸攻击、AMM 定价边界(LMSR/CPMM)、市场创建生命周期攻击、结果判定时的时序/MEV(提交-揭示、封锁期)、特定协议模式(Polymarket、Azuro、Augur v2、PancakeSwap Prediction、SX Network、Overtime Markets)、包含 42 项内容的全面审计清单
  • SKILL.md 第 0 阶段路由表:Prediction Markets 行现在指向 prediction-markets.md,而不是 vulnerability-taxonomy.md §4.1
  • SKILL.md 第 4 阶段:新增 Prediction Markets 加载说明
v3.12.0 新增内容
  • references/options-protocols.md — 链上期权协议安全的深入参考:结算预言机操纵(到期时闪电贷攻击、TWAP 防御、断路器)、IV 攻击(管理员 IV、基于 AMM 的 IV 抽干、Lyra AVAX 模式)、抵押品和保证金(抵押不足的期权卖出、维持保证金、清算)、金库策略风险(对抗性行权价选择、周期时序、滥用 Gnosis Auction)、多腿收益正确性(无符号数学、价差上限、日历价差独立性)、特定协议模式(Lyra v2、Opyn Gamma、Ribbon、Dopex SSOV、Premia v3)、包含 42 项内容的全面审计清单
  • SKILL.md 第 0 阶段路由表:Options 行现在指向 options-protocols.md,而不是 vulnerability-taxonomy.md §4
  • SKILL.md 第 4 阶段:新增 Options 加载说明
v3.11.0 新增内容
  • references/rwa-protocols.md — RWA 协议安全的深入参考:信任模型和池管理器权限提升、NAV 预言机操纵、周期赎回竞态条件、分层会计攻击、KYC/转账限制绕过(ERC-1400/ERC-3643)、违约处理和减记时序、特定协议模式(Centrifuge、Maple、T-bill 金库)、全面审计清单
  • SKILL.md 第 0 阶段路由表:RWA 行现在指向 rwa-protocols.md,而不是 vulnerability-taxonomy.md §16
  • SKILL.md 第 4 阶段:新增 RWA 加载说明
v3.9.0 新增内容
  • references/tool-integration.md §1 Slither Triage Cheat Sheet — 处理 100–300 条 Slither 检查结果的 7 步框架:优先级顺序表(P0→P3)、各检测器误报识别指南(9 个检测器)、jq 筛选命令、bash 分组/去重、内联抑制模式、.slither.config.json 模板、slither-check-upgradeability 工作流,以及快速参考分诊决策卡
v3.8.0 新增内容
  • references/defi-checklist.md §RWA — 现实世界资产:净资产价值操纵、优先级/次级份额会计、基于周期的赎回时间安排、资金池管理者信任、绕过 KYC 转账限制、违约/清算对链下信任的依赖
  • references/defi-checklist.md §Options — 期权与结构化产品:到期时操纵结算预言机、隐含波动率操纵、期权卖出抵押不足、自动化金库行权价选择、多腿收益计算漏洞
  • references/defi-checklist.md §Prediction — 预测市场:解析器/预言机贿赂攻击、CTF 条件代币合并攻击、AMM 价格边界、市场创建垃圾信息、结算时的内部人士 MEV
  • references/defi-checklist.md §Safe — Gnosis Safe 模块与防护器:delegatecall 存储冲突(含槽位映射)、enableModule() 时间锁、后备处理程序漏洞利用、通过 execTransactionFromModule() 绕过防护器、Zodiac 角色提升权限、社交恢复骚扰攻击
  • SKILL.md 第 0 阶段路由表:新增 4 种协议类型(RWA、期权、预测市场、Safe 模块)——总数从 13 种增至 17 种
v3.7.0 新增内容
  • references/exploit-case-studies.md #19 — BNB Chain Bridge 5.7 亿美元(2022 年 10 月):通过 iavl Go 库漏洞伪造 Merkle 证明;链下验证攻击面;通过转账上限和时间锁实现纵深防御;链下证明库审计清单
  • references/exploit-case-studies.md #20 — Multichain 1.3 亿美元(2023 年 7 月):MPC 密钥集中于单一 CEO;司法管辖区风险(中国当局);运维安全审计框架;采用监护人暂停机制和大额转账时间锁的 MPC 跨链桥架构
  • README.md 修复:统一“What's Included”表格中不一致的粗体格式,将漏洞利用案例数更新为 20,并添加 Contest Mode 行
v3.6.0 新增内容
  • references/vulnerability-taxonomy.md §23 — Solidity 0.9.0 破坏性变更:移除 transfer()/send(),迁移到 .call{}() 后出现新的重入攻击面,未检查返回值模式
  • references/vulnerability-taxonomy.md §24 — PUSH0 操作码跨链兼容性:EIP-3855(Shanghai,2023 年 4 月)、Solidity 0.8.20+ 默认 evmVersion、非 Shanghai 链部署失败、逐链兼容性表
  • references/vulnerability-taxonomy.md §25 — ERC-1967 代理存储槽损坏:汇编槽位冲突、UUPS 锁死攻击(缺少 proxiableUUID 检查)、delegatecall 覆写槽位、存储布局迁移中断
  • CLAUDE.md 修复:将审计模式数量修正为 5(v3.5.0 添加的 Contest Mode 未纳入统计)
v3.5.0 新增内容
  • Contest Mode — 面向竞赛平台的新审计模式:Code4rena、Sherlock、Immunefi、Cantina、CodeHawks;平台路由表、竞赛 ROI 策略、有效性预检查、各平台规则(管理员信任、前置条件、升级处理)
  • references/report-template.md — 添加 Immunefi 漏洞赏金提交格式;负责任披露规则
  • references/exploit-case-studies.md #17 — Ronin Bridge 6.25 亿美元(2022 年 3 月):5/9 验证者门槛 + 过期的临时权限;跨链桥验证者信任模型清单
  • references/exploit-case-studies.md #18 — Mango Markets 1.17 亿美元(2022 年 10 月):通过自我交易操纵预言机;双钱包策略;采用 Chainlink + 30 分钟 TWAP + 熔断器的强化预言机设计
  • 错误修复:分类法目录添加 §21/§22;SKILL.md 去重触发条件;将 Info 标签改为 Informational;定义 Quick Scan 输出;在 Universal DeFi Access Control 中添加 ERC-7702 tx.origin 检查
v3.4.0 新增内容
  • references/ai-code-patterns.md — LLM 特有的 Solidity 反模式:CEI 违规、有缺陷的重入保护、臆造的接口、不完整的访问控制、EIP-712 缺少 nonce/chainId;AI 生成代码的危险信号;针对氛围编码合约的完整审计清单
  • references/glamsterdam.md — Glamsterdam 升级安全:EIP-7732 ePBS 载荷扣留和预确认时序攻击;EIP-7928 BAL 的 MEV 透明度和并行化竞态条件;两项 EIP 的审计清单
  • references/exploit-case-studies.md #15 — xUSD/Stream Finance 2.85 亿美元(2025 年 11 月):硬编码的预言机适配器($1.00)导致递归杠杆循环;为什么 pure 预言机适配器能绕过静态分析
  • references/exploit-case-studies.md #16 — Hyperliquid HLP:金库兼任做市商和坏账吸收方;专有预言机中心化;利用低流动性市场(JELLY 事件)
  • references/perpetual-dex.md §10-§14 — dYdX v4(Cosmos CLOB、CometBFT MEV)、Gains Network(DAI 金库偿付能力)、高级资金费率操纵(基于偏斜和时间加权)、保险基金耗尽攻击、跨保证金传染和逐仓转全仓时序攻击
  • references/zkvm-specific.md §7-§10 — Noir unconstrained 函数风险和公开/私有输入混淆、SP1 周期 DoS 和提交输出完整性、Polygon CDK 排序器中心化和 LxLy 桥重放、折叠方案(Nova/SuperNova/HyperNova IVC)
  • SKILL.md Phase 0 — “按协议类型审计”快速路由表:将 13 种协议类型映射到主要参考资料、清单章节和关键案例研究
v3.3.0 新增内容
  • references/vulnerability-taxonomy.md §4.6 — 再质押资产的预言机链复杂性(Moonwell 模式):沿适配器链传播的陈旧数据
  • references/vulnerability-taxonomy.md §4.7 — 预言机价格硬编码作为传染放大器(xUSD/Stream Finance,2.85 亿美元,2025 年 11 月):通过 $1.00 抵押品价格实现递归杠杆
  • references/vulnerability-taxonomy.md §6.7 — 自定义存储布局冲突(solc 0.8.29,多重继承 + --via-ir)
  • references/vulnerability-taxonomy.md §9.5 — 通过源链事件泄露实施跨链三明治攻击(arXiv,2025 年 11 月,盈利率 21.4%)
  • references/vulnerability-taxonomy.md §12.7 — 多操作路由器安全标志重置(Abracadabra cook(),180 万美元,2025 年 10 月):OR 累积与直接赋值的区别
  • references/vulnerability-taxonomy.md §17.6 — EIP-7702 清扫器活动 + Pectra 升级后绕过 tx.origin 守卫(250 万美元以上,2025 年 5 月)
  • references/vulnerability-taxonomy.md §19.8 — TransientStorageClearingHelperCollision:对瞬态变量使用 delete 会生成 sstore(solc 0.8.28–0.8.33 + --via-ir,与 §19.6 不同)
  • references/exploit-case-studies.md — Cork Protocol V4 钩子漏洞利用(1,100 万美元,2025 年 5 月):首个重大生产环境 V4 钩子漏洞利用,缺少 onlyPoolManager
  • references/defi-checklist.md — 所有 V4 回调都必须使用 onlyPoolManager(Cork Protocol 模式)、CeDeFi 和递归杠杆章节、sweepUnclaimed() 访问控制
  • references/account-abstraction.md — ERC-7579:通过 onUninstall 回滚污染模块、重新安装后状态陈旧、执行器 delegatecall 滥用、ERC-7484 注册表
  • references/account-abstraction.md — ERC-7821 最小批量执行器:完整的 EIP-712 重放保护检查清单
  • references/l2-crosschain.md — 跨链三明治攻击、Fusaka EIP-7825 Gas 上限(16.78M)、应用链分叉风险(Berachain 模式)
  • references/perpetual-dex.md §9 — 作为清算吸收方的流动性金库:Hyperliquid HLP 结构性操纵、预言机中心化风险
  • references/tool-integration.md — Aderyn v0.6 重写(LSP、CI、100 多个检测器)、Echidna 2025 验证模式 + Foundry 复现器、Halmos + Recon 自动复现器
  • references/audit-questions.md — AI 辅助漏洞利用开发注意事项(Balancer V2 console.log 证据)
  • references/industry-standards.md — Solidity 弃用时间表(transfer/send/ABI v1 → 在 0.9.0 中移除)、Glamsterdam 升级(ePBS、BALs)
v3.2.0 新增内容
  • references/vulnerability-taxonomy.md §19.6 — TSTORE Poison 编译器漏洞(solc 0.8.28–0.8.33 + --via-ir):所有权窃取、绕过重入保护,约 50 万个合约受影响
  • references/vulnerability-taxonomy.md §19.7 — 通过 TSTORE 绕过 2300 gas 补贴:被调用方使用 TSTORE 时,transfer()/send() 不再能阻止重入
  • references/vulnerability-taxonomy.md §22 — EVM EOF(EIP-7692/Fusaka):移除 gas/代码可观测性、限制旧版 EXTDELEGATECALL、部署时验证
  • references/vulnerability-taxonomy.md §3.4 — 数学溢出哨兵错误:Cetus 2.23 亿美元案例模式、FullMath/PRBMath 中位移边界错误
  • references/vulnerability-taxonomy.md §6.6 — OZ v4→v5 存储槽迁移中断:顺序布局与 ERC-7201 命名空间布局
  • references/vulnerability-taxonomy.md §12.6 — 外部调用失败导致的虚假抵押品:Abracadabra 模式、cook() 批量路由器共享状态
  • references/vulnerability-taxonomy.md §4.5 — ERC-7726 有效性假设错误:预言机适配器悄然传递无效数据
  • references/vulnerability-taxonomy.md §18.6 — V4 钩子 LDF 舍入攻击:Bunni 840 万美元案例,添加/移除流动性时的不对称舍入
  • references/defi-checklist.md — JIT 流动性攻击检查清单、LDF 舍入检查清单、模块化借贷(Morpho Blue + Euler V2 EVC)检查清单
  • references/account-abstraction.md — EIP-7701 原生 AA 章节:ACCEPT_ROLE 操作码风险、旧版合约意外执行验证
  • references/automated-detection.md — TSTORE Poison 版本检测器及共同使用正则表达式模式
导航
  • references/INDEX.md — 主索引;列出指向 4 个专题子索引的分类指南
  • references/INDEX-vulns.md — 漏洞类型 + 安全模式 → 在 阶段 3 加载
  • references/INDEX-defi.md — DeFi 协议、代币、不变量 → 在 阶段 4 加载
  • references/INDEX-tools.md — 工具、检测模式、PoC 模板 → 在 阶段 2 或编写 PoC 时加载
  • references/INDEX-advanced.md — L2/AA/ZK/质押 +“我发现了 X”快速查找表 → 在特定场景下加载

根据具体审计场景按需加载这些文件。

重要说明

  • 始终明确说明评审是有限的自动化扫描,还是完整的人工审计
  • 绝不保证代码“100% 安全”——审计能降低风险,但无法消除风险
  • 即使中心化风险不属于传统意义上的“漏洞”,也要指出
  • 考虑经济激励:考虑 gas 成本后,利用漏洞是否有利可图?
  • 检查与常见 DeFi 原语的交互(闪电贷、MEV、可组合性)
  • 对严重程度拿不准时,请查阅 Sherlock、Code4rena 和 Immunefi 对类似发现的分类

评论

支持 Markdown