2025年对加密安全领域而言又是一个充满挑战的年份。一系列高影响力事件震动了整个生态系统,并留下了实实在在的损失,波及用户、团队以及整个行业的社区。尽管结果往往令人痛心,但每一次事件也都在重申一个共同的真相:安全必须被置于最优先的位置。
为了帮助社区从这些事件中学习,BlockSec 精选了今年最具代表性的十大安全事件。这些案例的入选不仅基于损失规模,也基于所涉及的独特技术手段、执行过程中出人意料的转折,以及它们所揭示的全新或尚未被充分探索的攻击面。
在本文中,我们将聚焦2025年十大安全事件,并逐一说明每个事件值得关注的原因。我们还将为每个案例发布专门的后续文章,详细拆解其根本原因和完整攻击路径。
Cetus 事件:2025年最大的DeFi攻击
概要
2025年5月22日,Sui链上规模最大的集中流动性DEX Cetus Protocol遭到攻击,多个流动性池被抽干,估计损失约为2.23亿美元。根本原因在于定点数u256数学运算中一个存在缺陷的防溢出辅助函数(checked_shlw()):错误的阈值判断使得一个本应被阻止的不安全<< 64左移操作得以执行,导致高位数据被静默截断。攻击者通过精心选择流动性规模和极窄的价格区间(tick range),使Cetus将所需存入的代币数量计算为约1个单位,同时却为该LP仓位记入了巨额流动性,随后移除这个被夸大的仓位,从而提走真实储备资产。
入选理由
一个定点数辅助函数中的单一错误比较,就足以抽干2.23亿美元。攻击者既没有操纵预言机,也没有利用治理机制:整个攻击完全依赖于纯粹的算术边界情况(位移+截断),以确定性的方式创造出近乎免费的流动性并提走真实储备。对于任何基于集中流动性数学构建的协议而言,这个案例是一个直接的警示:底层定点数运算中的静默边界错误,足以升级为协议层面的灾难。
详细了解根本原因和攻击步骤。
Bybit:2025年最大规模的攻击事件
概要
2025年2月21日,Bybit在攻击者通过社会工程学手段攻陷一名Safe{Wallet}开发人员的设备后,损失约15亿美元。凭借这一入侵权限,攻击者向Safe{Wallet}的AWS S3存储桶中注入了恶意JavaScript代码。该注入代码专门针对Bybit的Safe{Wallet}交易,在签名过程中篡改交易内容。被篡改的交易将Bybit的Safe{Wallet}合约升级为一个恶意实现,使攻击者能够抽走该合约持有的所有资产。
入选理由
加密货币历史上规模最大的安全漏洞事件,并非始于智能合约漏洞。它始于一台被攻陷的开发者设备和S3存储桶中一个被篡改的JavaScript文件。整条攻击路径完全走通了Web2基础设施:社会工程学、云存储、以及前端代码注入。对于一个专注于链上安全的行业而言,Bybit直接提醒我们:运营和基础设施安全同样至关重要。一个多签钱包的安全程度,取决于其持有人所信任的签名界面的安全程度。
详细了解根本原因和攻击步骤。
Balancer V2
概要
2025年11月3日,Balancer V2的Composable Stable Pools以及跨多条链上的多个分叉项目在一次协同攻击中被利用,总损失超过1.25亿美元。根本原因在于不变量(invariant)计算中的精度损失,导致BPT(Balancer Pool Token)定价失真。攻击者分两个阶段利用了这一失真:首先通过精心构造的批量交换(batch swap)操纵BPT价格,随后在另一笔交易中通过提取资产来获利。
入选理由
与典型的预言机操纵攻击不同,该漏洞源自不变量计算本身:定点数运算中一个微小的精度损失,就足以扭曲BPT定价并使单笔交易内的获利提取成为可能。该攻击在多条链上传播,同时影响了Balancer及其分叉项目,展示了共享代码库如何在可组合的DeFi中放大系统性风险。社区在讨论根本原因时常常过度简化了其中的机制。完整分析追溯了不变量求解器中的精度损失是如何转化为可被利用的定价漏洞的。
详细了解根本原因和攻击步骤。
GMX
概要
2025年7月9日,Arbitrum链上的GMX V1遭到攻击,损失约4200万美元。攻击者触发了一个重入漏洞,在交易执行过程中操纵GLP价格,随后利用被扭曲的价格获取远超其存入价值的资产。通过反复利用该漏洞,攻击者逐步抽干了GMX V1流动性池中的底层资产。
入选理由
重入攻击是已知最古老的智能合约漏洞之一,然而它却击垮了一个经过长期实战检验、具备成熟访问控制模型的协议。OrderBook合约上的nonReentrant修饰符阻止了同一合约内的重入,却无法阻止在回退函数(fallback)执行期间跨合约调用进入Vault合约。GMX V1已经上线运行多年,这样的历史记录容易让人产生虚假的安全感。这个案例表明,协议的成熟度并不能替代系统层面的重入分析,当多个合约共享可变状态时,单一合约的防护措施是不够的。
详细了解根本原因和攻击步骤。
Yearn Finance
概要
2025年11月30日,Yearn Finance的yETH加权稳定池(Weighted Stable Pool)遭到攻击,损失超过900万美元。主要根本原因在于不变量求解器_calc_supply()中不安全的算术运算,其向下取整和下溢失败分别造成了约810万美元(占总损失的90%)的损失。第二个漏洞——add_liquidity()中一个未被禁用的引导(bootstrap)路径——则在主漏洞已抽干池子之后,额外造成了约90万美元的损失。
攻击者执行了一个多阶段策略:首先,反复添加和移除流动性,在池子的虚拟余额中制造出极端失衡;接着,利用算术运算失败使乘积项崩溃,将总供应量抽干至零;最后,重新进入引导初始化路径,通过下溢铸造出约2.35e56个yETH,并在yETH-WETH的Curve池中将其换成真实资产。
入选理由
以2025年的标准来看,这次事件的经济损失属于中等规模,但其技术复杂度却极为突出。该攻击将数值边界情况(除法崩溃、不变量求解器中的符号翻转)与状态机重入(在部署后重新触发池子初始化)串联在一起,需要对链上状态进行精确的多阶段操纵。要完全还原该漏洞,需要同时理解底层的算术运算和更广泛的状态转换过程。这个案例中所体现的精妙、严谨和教育意义,使其成为今年最具分析价值的事件之一。
详细了解根本原因和攻击步骤。
Cork Protocol
概要
2025年5月28日,以太坊上的Cork Protocol遭到攻击,损失约1200万美元。根本原因是到期时间HIYA价格操纵与Uniswap v4钩子回调函数中缺失访问控制两者的结合。由于HIYA(历史隐含收益率均值,Historical Implied Yield Average,一种用于为新市场发行定价的风险溢价指标)会在到期时间趋近于零时呈指数级上升,后期的交换操作会使HIYA被抬高,从而导致新初始化的市场严重低估Cover Token的价格。同时,CorkHook.beforeSwap函数缺乏对msg.sender的身份验证,使得任意调用可以携带精心构造的参数被执行。攻击者利用这两个漏洞,提取了大量的CT和DS代币,并将其换回wstETH,从而抽干了协议储备。
入选理由
无论是到期时间定价曲线,还是未经身份验证的钩子回调函数,单独来看都不足以造成灾难。但两者的相互作用却做到了。临近到期时HIYA溢价呈指数级放大,起到了经济层面的放大器作用,而CorkHook.beforeSwap中缺失的msg.sender检查,则为攻击者提供了以任意参数触发该放大效应的途径。这个案例揭示了一类单模块审计很可能会遗漏的漏洞:跨模块假设不匹配——当经济设计与访问控制相互作用时,会产生可被利用的攻击路径。
详细了解根本原因和攻击步骤。
Trust Wallet
概要
2025年12月25日,Trust Wallet遭受了一次供应链攻击,导致超过2000个用户钱包被攻陷,损失850万美元。攻击者获取了Trust Wallet的Chrome网上应用店API密钥,并利用其通过官方渠道发布了一个植入后门的扩展程序(v2.68版本)。该恶意扩展会将用户的种子短语窃取到攻击者控制的服务器。随后,攻击者从被攻陷的钱包中抽走了资金。
入选理由
攻击者从未接触过任何智能合约。仅通过攻陷一个API密钥,他们就通过Trust Wallet的官方分发渠道发布了一个恶意扩展程序,绕过了人工审核和标准发布流程。用户没有任何理由怀疑这次更新。这是本次十大事件中唯一一起钱包供应链攻击,它揭示了一类链上审计所无法覆盖的风险:开发者与终端用户之间软件交付管道的安全性。
详细了解根本原因和攻击步骤。
Bunni
概要
2025年9月2日,Bunni V2遭到攻击,损失840万美元,攻击范围涵盖以太坊上的USDC/USDT池和Unichain上的weETH/ETH池。该协议随后于2025年10月23日宣布破产。根本原因在于在移除流动性时更新闲置池余额过程中存在的一个舍入错误,该错误导致合约低估了自身的总流动性。
攻击者执行了一个三阶段的攻击:首先,操纵池子价格以耗尽USDC的可用余额,从而放大舍入误差;接着,执行一系列小额提款操作,逐步积累流动性低估效应;最后,通过定向交换来套取协议记录的流动性与其实际储备之间的差额。
入选理由
Bunni V2经历过多次代码审计,然而闲置余额记账中一个微小的舍入错误却未被察觉。这个错误在单笔交易中微不足道,但攻击者在故意扭曲池子状态后,通过反复的小额提款将其放大,把一个微小的精度损失转变成了840万美元的抽干事件。这个案例说明,那些单独看起来安全的舍入误差,在攻击者能够控制其累积的顺序和条件时,就可能变得可被利用。
详细了解根本原因和攻击步骤。
1inch
概要
2025年3月5日,一个与1inch Fusion V1集成的第三方解析器(resolver)因_settleOrder()函数中不安全的calldata重构而遭到攻击,损失超过500万美元。一个由攻击者控制的interactionLength参数破坏了用于传播解析器身份和执行上下文的动态后缀数据在内存中的汇编构造过程,从而使伪造的结算数据得以被注入。由于解析器合约仅凭msg.sender就隐式信任由Settlement合约转发的calldata,被伪造的上下文数据通过了所有访问控制检查,导致资产被未经授权地提取。
入选理由
这一漏洞模糊了智能合约漏洞与传统二进制漏洞利用之间的界限。攻击并非利用经济假设或高层业务逻辑,而是依赖于指针算术、未经检查的长度字段以及ABI内存布局假设——这些模式更常见于原生软件漏洞利用中,例如缓冲区溢出和整数下溢。这表明底层的calldata和内存操纵,能够将经典的漏洞利用原语重新引入链上系统,尤其是在与合约间隐式信任链结合时更是如此。
详细了解根本原因和攻击步骤。
Panoptic
概要
2025年8月25日,在Cantina和Seal911的协助下,Panoptic开展了一次白帽救援行动,成功保住了约40万美元的高风险资金。根本原因在于合约构造s_positionsHash时存在的一个缺陷:使用XOR(异或)来聚合Keccak256哈希结果。虽然单个哈希函数仍然具备抗碰撞性,但XOR运算的数学线性性使得整体指纹(多个哈希值的XOR和)变得不安全,导致不同的持仓集合能够产生完全相同的哈希值。
入选理由
本清单中的大多数事件都可以追溯到算术错误或缺失的访问控制。而Panoptic的漏洞则不同:它是数据结构层面的一个密码学设计缺陷。该协议依赖XOR来组合持仓指纹,并假设其结果会继承底层Keccak256哈希的抗碰撞特性。然而事实并非如此。XOR的线性特性意味着攻击者可以构造出不同的持仓集合,使其产生相同的s_positionsHash值,从而绕过记账不变量。此次成功的白帽救援避免了损失的发生,但这个潜在缺陷提醒我们:哈希值的组合与哈希函数本身一样,都需要同等的谨慎对待。
详细了解根本原因和攻击步骤。



