关于 solidity-security-audit
solidity-security-audit 是用于审查 Solidity 智能合约并输出分级发现与修复建议的技能。它根据需求采用完整审计、快速检查、集成审查、复审或安全竞赛流程。
主要功能
- 01必要时先收集审计背景
- 02支持完整审计与快速检查
- 03审查集成和复审差异
- 04提供竞赛专用发现格式
- 05标注严重程度并给出修复建议
- 06依据协议进行威胁建模
适用场景
- 01审计 Solidity 合约或代码库
- 02针对先前审计复核修复
- 03为安全竞赛准备问题报告
- 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 外,安装时一起下载的参考资料和脚本。
.gitignorepackage.jsonLICENSECLAUDE.mdREADME.md.github/CONTRIBUTING.mdCODE_OF_CONDUCT.mdFUNDING.ymlreferences/INDEX-advanced.mdINDEX-tools.mdINDEX-defi.mdINDEX.mdINDEX-vulns.mdaudit-questions.mdai-code-patterns.mdautomated-detection.mdaccount-abstraction.mddefi-integrations.mddiff-audit.mdglamsterdam.mdfusaka-eof.mddefi-checklist.mdindustry-standards.mdintent-protocols.mdexploit-case-studies.mdinvariants.mdmove-security.mdl2-crosschain.mdprediction-markets.mdperpetual-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 / DEX | defi-integrations.md §Uniswap | defi-checklist.md §AMM | Curve、Cork Protocol |
| 借贷 | defi-integrations.md §Aave | defi-checklist.md §Lending | Euler、Abracadabra |
| Vault / Yield(ERC-4626) | defi-integrations.md §ERC-4626 | defi-checklist.md §Vault | — |
| Bridge / 消息传递 | l2-crosschain.md | defi-checklist.md §Bridge | Nomad、Wormhole |
| 治理 / DAO | vulnerability-taxonomy.md §15 | defi-checklist.md §Governance | Beanstalk、Compound |
| 永续 DEX | perpetual-dex.md | defi-checklist.md §Perp | Hyperliquid HLP |
| LST / 再质押 | staking-consensus.md | defi-checklist.md §Restaking | Bybit |
| Uniswap V4 Hook | defi-integrations.md §V4-Hooks | defi-checklist.md §V4-Hooks | Cork Protocol |
| ZK / Rollup | zkvm-specific.md | l2-crosschain.md §ZK | — |
| 账户抽象 | account-abstraction.md | audit-questions.md §AA | — |
| AI 生成代码 | ai-code-patterns.md | audit-questions.md §AI | Bybit(供应链) |
| 意图 / Solver | intent-protocols.md | defi-checklist.md §Intents | — |
| CeDeFi / Synthetic | vulnerability-taxonomy.md §4.7 | defi-checklist.md §CeDeFi | xUSD($285M) |
| RWA / 代币化资产 | rwa-protocols.md | defi-checklist.md §RWA | — |
| 期权 / 结构化产品 | options-protocols.md | defi-checklist.md §Options | Deus DAO、Lyra AVAX |
| 预测市场 | prediction-markets.md | defi-checklist.md §Prediction | Polymarket UMA 争议、Augur REP |
| 多签 / Safe 模块 | safe-modules.md | defi-checklist.md §Safe | Radiant Capital |
| Move / Sui / Aptos | move-security.md | —(补充) | Cetus($223M) |
在查看代码之前,先在脑海中建立协议功能及其可能出现的经济风险模型。这有助于确定阶段 3 的投入重点。
-
梳理参与方:谁会与该协议交互?
- 无特权用户、流动性提供者、借款人
- 特权角色:管理员、guardian、keeper、费用接收方
- 外部参与方:MEV 机器人、闪电贷攻击者、清算人、治理参与者
-
找出核心资产:哪些资产或权利面临风险?
- 锁定在协议中的用户资金
- 协议自有储备金或保险基金
- 治理控制权(升级、更改参数或提取资产的能力)
-
定义关键不变量:哪些条件绝不能不成立?
- 偿付能力:总负债 ≤ 总资产
- 账目核算:各个余额之和 = 跟踪的总额
- 访问控制:只有经授权的调用者才能执行特权操作
-
追踪信任边界:该协议信任哪些外部系统?
- 预言机(Chainlink、TWAP、自定义)
- 外部协议集成(Uniswap、Aave、Curve)
- 跨链桥 / 消息传递层(LayerZero、CCIP、Wormhole)
- 多签签名者或治理机制
-
评估 MEV 攻击面:哪些操作会带来可获利的交易排序机会?
- 清算、套利、可被夹击的交换
- 可被抢先执行的揭示、领取或结算操作
-
记录升级 / 管理员权限的影响范围:如果管理员密钥或多签被攻破, 最大损失会有多大?是否设有时间锁?是否有暂停机制?
输出:用 5–10 行威胁摘要,聚焦阶段 3 手动审查中价值最高的攻击路径。仅 Quick Scan 模式可跳过此步骤。
阶段 1 — 侦察
- 确定 Solidity 版本、编译器设置和框架(Hardhat/Foundry)
- 梳理合约架构:继承树、库的使用情况、外部依赖项
- 确定协议类型(DeFi 借贷、AMM、NFT、治理、桥、金库等)
- 确定信任模型:有哪些特权角色?它们可以执行哪些操作?
- 列出所有外部集成(预言机、其他协议、代币标准)
阶段 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、严重性分类、安全 EIPreferences/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、bundlerreferences/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.mdPhase 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 §25SKILL.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.1SKILL.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 §4SKILL.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 §16SKILL.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 价格边界、市场创建垃圾信息、结算时的内部人士 MEVreferences/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-7702tx.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— Noirunconstrained函数风险和公开/私有输入混淆、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 钩子漏洞利用,缺少onlyPoolManagerreferences/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 对类似发现的分类