智能合约漏洞
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/smart-contract-vulnerabilities-kex5 到当前 AI 助手。
技能介绍
要解决的问题
智能合约部署后无法修改,一个细微漏洞就可能让资金池被清空。审计的真正难点不是经典重入这类已知模式,而是更隐蔽的状态交互:跨合约重入让多个合约共享的陈旧状态被反复读取,代理模式下的存储布局冲突让 delegatecall 写到错误的槽位,tx.origin 校验被钓鱼合约继承。基础模型往往漏掉这些需要逐步推演的问题。
核心能力与关键步骤
技能按漏洞类别组织成攻击手册,每个类别都包含原理、攻击步骤或示例、真实案例与缓解措施:
- 重入:拆分为经典、跨函数、跨合约、只读四种变体。跨函数重入用步骤表展示
withdraw()回调期间transfer()读取陈旧余额的过程;只读重入附 Curveget_virtual_price()在remove_liquidity()回调中被放大价格的案例。缓解侧给出 CEI、ReentrancyGuard、拉取支付模式。 - 整数溢出:区分 Solidity 0.8 前后的算术行为,指出
unchecked{}块重新引入风险,并列出 SafeMath 绕过场景:uint256到uint128截断、汇编mstore/add、(a * b) / c的中间乘法溢出。 - 权限控制与
delegatecall:对比msg.sender与tx.origin,归纳常见的权限缺失;delegatecall部分覆盖存储槽冲突和函数选择器冲突,提示用cast selectors枚举。 - 其他专项:随机性操纵(含 commit-reveal 选择性中止)、抢跑/MEV 防护(Flashbots、私有内存池、滑点保护、时间锁)、签名重放(缺少 nonce、跨链重放、EIP-712 实现错误)、
selfdestruct强制转账、CREATE2 预充值/预授权利用、闪电贷原子性、短地址攻击。 - 工具链:整合 Slither、Mythril、Echidna、Foundry (Forge)、Hardhat、Certora、4naly3er,并附决策树。
适用边界
技能是审计推理辅助,不是自动化扫描器:它解释攻击路径与修复模式,不替代静态分析,也不保证覆盖所有项目定制逻辑。需要漏洞/修复代码对照、Gas 优化陷阱和存储槽计算示例时,需额外加载 SOLIDITY_VULN_PATTERNS.md;涉及 DeFi 组合攻击或链下反序列化目标时,按路由加载 defi-attack-patterns 与 deserialization-insecure。涉及 selfdestruct 与 CREATE2 的结论以 EIP-6780 之后的链上行为为准。
使用场景
- 审计一笔跨合约资金流转时,需要按步骤推演陈旧状态被重入回调反复读取并放大价格的路径
- 排查代理合约升级后权限异常,需要核对 implementation 写入槽位与 proxy owner 的存储布局冲突
- 检查 EIP-712 签名实现时,需要定位缺少 nonce 或 chainId 导致的同链或跨链签名重放风险
- 分析闪电贷攻击交易时,需要在原子序列失败回滚的约束下复现预充值、预授权或价格操纵步骤
适合人员
- 负责智能合约安全审计、需要输出漏洞分类与修复建议的审计工程师
- 开发 DeFi 协议、要在上线前自查重入、溢出、权限与闪电贷路径的 Solidity 工程师
- 运行漏洞扫描并需要解释 Slither、Mythril、Echidna 报告的区块链安全分析师
- 验证合约属性、需要把 EIP-6780 后 selfdestruct 与 CREATE2 行为纳入检查范围的形式化验证工程师