2025年是智能合约漏洞利用频发的一年。那些通过多次审计的协议、经过多年实战考验的协议、由具备深厚安全专业知识的团队构建的协议,全都成为攻击的受害者,揭示了一个令人不安的事实:我们在发现传统漏洞方面越来越擅长,但在协议如何思考经济学、数学和系统设计方面,仍然忽略了根本性缺陷。
这篇回顾性文章检视了本年度最具技术趣味的事件,按照它们对智能合约安全的教训进行排序。我们将探讨经济不变量违反如何让攻击者铸造无限代币、AMM数学中的精度错误如何将微小的舍入误差转化为数百万美元的漏洞利用,以及系统边界失效如何暴露出单一组件审计无法捕捉的漏洞。
这些黑客攻击揭示了协议设计中的根本问题,这些失效超越了简单的错误,触及了DeFi系统应该如何运作的核心假设。
2025年12月
Yearn Finance在2025年12月遭受了两次相关的漏洞利用,两次都针对协议升级后仍保留在链上的旧版基础设施。
第一次漏洞利用:经济不变量违反(900万美元)— 12月1日
Yearn Finance的旧版yETH稳定币交换池在单笔交易中被抽干。攻击者在份额计算逻辑中发现了一个缺陷,允许铸造近乎无限数量的yETH代币。约1,000 ETH(价值约300万美元)被发送到Tornado Cash。
攻击者在稳定币交换公式中发现了一个边缘情况,份额计算可以被操纵。漏洞存在于会计逻辑本身。当协议计算存款或取款的份额时,数学计算可以被操纵以凭空创造份额。
第二次漏洞利用:旧版合约风险(30万美元)— 12月17日
在第一次漏洞利用之后,Yearn的V1合约成为目标。当协议升级时,旧合约不会消失。它们保留在链上,可能持有价值。在Yearn的案例中,V1合约仍然锁定着资金,这些资金在第一次漏洞利用引起对Yearn旧版基础设施的关注后成为目标。
为什么重要(审计师和组织角度):
第一次漏洞利用显示了审计方法中的重要缺口。静态分析工具不验证经济不变量。模糊测试器测试代码路径,而不是经济模型。审计流程需要明确验证会计逻辑在所有操作序列中维护预期的不变量。
第二次漏洞利用突显了旧版合约代表着持续风险。第一次漏洞利用可能引起了对Yearn旧版基础设施的关注,导致了第二次。协议需要明确的计划来淘汰旧合约、迁移剩余价值并监控意外交互。
缓解措施: 实施不变量测试,断言份额与价值的关系在所有操作中保持不变。使用差异模糊测试将会计计算与参考实现进行比较。制定明确的旧版合约弃用策略并持续监控。
漏洞类别: 经济不变量违反和旧版合约风险。
深入分析: Yearn Finance DeFi项目被黑客攻击损失900万美元 | PeckShield警报 | Yearn Finance V1漏洞利用
2025年11月3日
Balancer稳定池计算中的微小舍入错误通过高频批量交换被放大,导致跨多个链损失7,000万至1.28亿美元。攻击者执行了数百或数千次交换,每次交换都放大了之前的舍入错误,直到这些微小错误累积成巨额价值提取。
工作原理:
Balancer的稳定池使用复杂的公式来维持价格稳定。这些公式涉及多个步骤的舍入。在正常操作中,舍入错误很小。但攻击者找到了一种构建批量交换的方法,持续从舍入方向中受益,通过重复操作提取价值。
为什么重要(协议设计师角度):
AMM数学需要在对抗性条件下保持正确。在处理大量资本和快速执行多笔交易的能力时,每个舍入决策都成为潜在的攻击载体。设计师需要从对抗性角度思考:如果攻击者执行此操作一千次会发生什么?
审计遗漏的内容: 标准审计流程测试单个交换,而不是数百或数千次的序列。舍入错误被测量为每次交换少于1 wei,被视为可忽略。没有在N次重复操作上断言不变量。没有状态序列建模的模糊测试器无法发现这一点。
缓解措施: 断言在重复操作中保持的不变量。使用对抗性批量大小进行测试。使用形式化验证来证明舍入错误边界在任何操作序列下保持可接受。
漏洞类别: AMM公式中的数学精度错误。
深入分析: Balancer DeFi协议遭受大规模漏洞利用 | Balancer黑客攻击多链详情解析
2025年7月9日
GMX,一个处理数十亿交易量的永续交易协议,被利用损失4,200万美元。漏洞利用不是来自核心交易逻辑中的错误。它出现在组件之间的边界:预言机与保证金计算相遇的地方,清算逻辑与桥接基础设施交互的地方。
工作原理:
漏洞存在于这些组件如何交互,而不是在任何单个组件中。当预言机更新价格时,保证金要求发生变化,清算逻辑做出响应。攻击者可能找到了一种操纵这些交互的方法,也许是通过将预言机更新与保证金计算进行时间协调。约960万美元在漏洞利用后立即被桥接到以太坊,表明经过精心策划。
为什么重要(系统架构角度):
经过良好审计的单个组件在集成时仍可能失败。漏洞不存在于任何单个合约中。它存在于组件之间的空间,存在于它们如何通信和交互。随着协议变得更加复杂和可组合,攻击面在组件边界处增长。
审计遗漏的内容: 传统审计流程通常大量关注独立的组件。集成测试存在,但可能不涵盖攻击者可以跨组件边界协调操作的对抗性场景。
缓解措施: 实施模拟完整系统行为的集成测试。使用可以建模组件之间交互的对抗性模拟框架。测试时序攻击,其中操作被排序以利用组件交互。
漏洞类别: 系统集成失效。
深入分析: GMX漏洞利用报道
2025年5月28日
Cork Protocol损失了约3,761 wstETH(价值约1,200万美元),原因是处理流动性质押衍生品的方式存在漏洞。像stETH、wstETH和osETH这样的流动性质押衍生品引入了隐藏的状态变化。wstETH和ETH之间的兑换率随着质押奖励的累积而随时间变化。
工作原理:
漏洞利用涉及Cork Protocol如何建模wstETH的价值累积与其实际工作方式之间的不匹配。协议可能假设了不成立的静态1:1关系。攻击者可以在兑换率有利时存入wstETH,等待它累积价值,然后提取超过应有的数量。
为什么重要(组织角度):
这突显了组织知识缺口。许多开发团队以相同方式对待所有ERC-20代币,但流动性质押衍生品的工作方式不同。这不仅仅是代码问题。这是知识管理问题。团队需要在集成之前识别和记录代币特定行为的流程。
缓解措施: 始终使用代币的兑换率函数(例如wstETH.getStETHByWstETH())。永远不要假设1:1关系。在涉及LSD的任何计算中考虑价值随时间的累积。
漏洞类别: 代币机制误解。
深入分析: Cork Protocol被黑客攻击损失1,200万美元,智能合约暂停
这些黑客攻击揭示了关于特定漏洞类别更窄但仍具教育意义的教训。
2025年9月2日
Bunni,一个集中流动性协议,通过其LP会计系统中的精度/舍入错误被利用。确切损失因来源而异(最初报告为240万美元,后续分析显示高达830万美元)。
工作原理:
攻击者找到了一种方法,通过重复存款和取款来利用对他们有利的舍入。每次操作提取少量,但通过许多操作,这些少量累积成数百万。
为什么重要(测试方法角度):
大多数测试套件建模单个操作,而不是操作序列。测试可能验证单个存款正确计算份额,但不会捕捉仅在数十次操作后出现的精度错误。不建模状态序列的模糊测试器会错过这些问题。
缓解措施: 使用已建立的数学库(例如PRBMath、ABDKMath)。测试操作序列,而不仅仅是单个操作。考虑内部使用更高精度,即使外部接口使用标准精度。
漏洞类别: LP会计中的精度/舍入错误。
深入分析: Bunni V2漏洞利用:830万美元被抽干
2025年10月30日
Garden Finance跨多个链被利用损失550万美元以上。攻击者在一条链上进行利用,然后使用跨链桥将被盗资产转移到其他链,通过不同的DEX进行交换以掩盖踪迹。
为什么重要(威胁建模角度):
多链部署创造了新的攻击面。威胁模型需要考虑跨链攻击载体。攻击者可能在一条链上利用您的协议,然后使用跨链基础设施逃跑或掩盖踪迹。
缓解措施: 设计包含跨链攻击载体的威胁模型。了解桥接如何工作及其安全假设。考虑实施跨链监控和警报。
漏洞类别: 多链攻击模式。
深入分析: Garden Finance违规报道
2025年9月8日
Sui上的Nemo Protocol被利用损失240万美元。攻击者通过Circle将被盗的USDC从Arbitrum桥接到以太坊。尽管有Move的安全特性,漏洞利用仍然发生。
为什么重要(工具角度):
Move的类型系统可以防止某些错误,但它不能解决整类协议级漏洞。如果您的协议的经济逻辑有缺陷,如果您的访问控制薄弱,如果您的预言机集成存在漏洞,Move的类型系统无济于事。
漏洞类别: 非EVM生态系统中的经济逻辑错误。
深入分析: Nemo Protocol漏洞利用详情
2025年的其他几起黑客攻击代表了直接的运营失败,而不是新颖的技术漏洞:
这些事件遵循众所周知的模式:管理员密钥泄露、过度的代币批准和访问控制失败。解决方案是已知的:对管理功能使用多签、实施适当的访问控制、监控过度批准。
纵观2025年的黑客攻击,出现了几种模式。经济正确性与代码安全同样重要。Yearn的无限铸造和Balancer的舍入错误表明,协议需要对其经济模型进行形式化验证,而不仅仅是代码审计。系统边界隐藏复杂性。GMX的漏洞利用表明,经过良好审计的组件在集成时仍可能失败。集成测试和对抗性模拟至关重要。
精度和舍入仍然危险。Bunni的漏洞利用提醒我们,定点算术漏洞持续存在。测试操作序列,而不仅仅是单个操作。跨链创造新的攻击面。Garden Finance和Nemo Protocol表明,多链部署需要考虑跨链攻击载体的安全模型。语言安全不能消除经济错误。Nemo Protocol表明,类型安全语言可以防止某些错误,但不能解决经济逻辑错误。旧版合约是持续风险。Yearn的12月漏洞利用显示,已弃用的合约仍然容易受到攻击,一次漏洞利用可能引起对旧版基础设施的关注。制定明确的弃用策略和持续监控。
已审计、已测试但仍被破解:2025年智能合约黑客攻击最初发表于Medium上的Coinmonks,人们通过突出显示和回应这个故事来继续对话。


