在过去一周(2026年2月15日至2月21日),BlockSec 检测并分析了三起攻击事件,总计估计损失约为 622 万美元。下表总结了这些事件,并将在后续小节中提供详细的分析。
| 日期 | 事件 | 类型 | 估计损失 |
|---|---|---|---|
| 2026/02/15 | Moonwell 事件 | 配置错误 | 约 178 万美元 |
| 2026/02/19 | PearlDriver 事件 | 算术溢出 | 约 4.03 万美元 |
| 2026/02/21 | IoTex 事件 | 密钥泄露 | 约 440 万美元 |
1. Moonwell 事件
摘要
2026年2月15日,Moonwell 协议因预言机配置错误被攻击,导致约 178 万美元的坏账。问题发生在执行 MIP-X43 提案期间,Base cbETH 预言机被错误地指定了 cbETH/ETH 汇率信息源,而不是包含 ETH/USD 价格的复合预言机。这导致预言机报告的 cbETH 价格约为 1.12 美元,而非其真实市场价值约 2,200 美元。在上限减少以阻止攻击之前,清算机器人立即扣押了 1,096.317 cbETH,同时偿还了极少的债务。
背景
Moonwell 是一个跨链借贷协议,于2026年2月15日执行了名为 MIP-X43 的提案。该提案旨在激活 Base 和 Optimism 上所有剩余核心和隔离市场的 Chainlink OEV(预言机可提取价值)包装器合约,将覆盖范围扩展到 MIP-X38 中已启用的最初三个信息源之外。OEV 包装器旨在允许协议在依赖预言机价格的清算期间捕获价值,同时确保清算者获得充分的激励。
漏洞分析
该漏洞源于 ChainlinkOracleConfigs.sol 构造函数中的配置错误。对于 Base 链的 cbETH,该提案将预言机配置为 "cbETHETH_ORACLE"(一个 cbETH/ETH 汇率信息源),而不是正确地将此汇率与 ETH/USD 定价相结合的 复合预言机。当 OEV 包装器通过 setFeed() 在 ChainlinkOracle 上部署并连接为信息源时,协议开始使用原始汇率(cbETH/ETH ≈ 1.12)作为 cbETH 的美元价格。这造成了报告价格(约 1.12 美元)与实际市场价值(约 2,200–2,400 美元)之间巨大的差异,导致 cbETH collateral 被低估约 2,200 倍。

攻击分析
-
2026年2月15日 UTC 时间下午6:01,MIP-X43 执行完成,激活了 Base 链上配置错误的 cbETH 预言机。
-
监控协议的清算机器人立即检测到价格差异,并对 cbETH 抵押品头寸 执行清算。

-
在几分钟内,1,096.31 cbETH 被清算者夺走,在受影响的市场中产生了约 178 万美元的坏账。
结论
此事件最终是由于 Moonwell 的 MIP-X43 部署中存在配置错误,Base 链的 cbETH 被错误地指定了 cbETH/ETH 汇率信息源,而不是正确的复合预言机。这种配置错误导致大量 cbETH 抵押品被迅速耗尽。
对于管理多个预言机信息源的协议而言,实施彻底的部署前验证程序至关重要,以确保每个资产都链接到其预期的价格来源。严格的验证可以显著降低此类高影响配置错误的风险。
2. PearlDriver 事件
摘要
2026年2月19日,PearlDriver 在 BSC 上的 NLAMM 绑定曲线合约被攻击,导致约 40,300 美元的损失。根本原因是 buy() 函数中未经验证的算术溢出,允许攻击者以近乎零成本铸造数量极其庞大的游戏代币,然后将其倾销到 PearlDEX 流动性池中。
背景
PearlDriver 使用 NLAMM(非线性自动化做市商)绑定曲线进行代币铸造。用户可以通过 buy() 函数购买游戏资源代币,购买稳定币的成本计算方式为:成本 = 数量 * 当前价格。
在正常情况下,该公式确保所需支付的金额与购买数量成正比。绑定曲线依赖于较大的购买量需要相应较大的支付金额这一假设,以维护价格的完整性并防止代币发行不成比例。
漏洞分析
根本原因是稳定币支付计算中的算术溢出。整个 buy() 函数被包裹在 unchecked 块中,禁用了 Solidity 内置的溢出保护。结果是,用于计算购买成本的乘法在超过最大整数限制时不会回滚。相反,该值发生溢出并缠绕成一个非常小的数字,从而大大降低了所需支付的金额。
因此,攻击者在铸造数量巨大的代币时几乎支付了零成本,然后立即将这些代币倾销到 DEX 流动性对中以提取 USDT。

攻击分析
在 单笔交易 中,攻击者使用相同的攻击模式,通过脆弱的 buy() 函数攻击了五种资产(IRON ORE、COAL、WOOD、SAND 和 CLAY)。以第一种资产为例:

-
攻击者在调用
buy()时指定了极大的购买数量。由于未经验证的算术运算,计算 数量 * 当前价格 发生溢出并缠绕成接近零的值,仅需支付 0.0053 USDT(不到 0.01 美元)。尽管成本微乎其微,但合约向攻击者铸造了数量巨大的 IRON ORE,具体为 7.03 × 10⁵⁸ 枚代币。 -
攻击者立即将部分铸造的 IRON ORE 兑换成相应的 PearlDEX 流动性对,获得了 7,805.55 USDT(约 7,805.56 美元)。
针对其他四种资产执行了相同的溢出-倾销序列,提取了每种资产-USDT 对的流动性,并总计获利超过 40,000 美元。
结论
此事件是由于 NLAMM buy() 函数定价逻辑中的未经验证的算术运算造成的。通过禁用溢出检查,该函数允许极端输入值扭曲支付计算,破坏了绑定曲线模型的经济假设。
虽然在严格控制的场景下,未经验证的算术运算可能是合适的,但将其用于直接确定支付金额的金融逻辑可能会带来重大风险。为了减轻此类风险,开发人员应仔细审查所有算术运算,并在考虑禁用 Solidity 0.8+ 内置溢出检查时保持谨慎,尤其是在影响定价或转移的代码路径中。
3. IoTex 事件
摘要
2026年2月21日,IoTeX 的 ioTube 桥由于以太坊验证者所有者密钥泄露而遭受安全漏洞。攻击者获得了验证者合约的所有权,然后控制了 TokenSafe 和 MintPool 合约,耗尽了约 440 万美元的桥储备金,并铸造了超过 4 亿枚 CIOTX 代币。被盗储备金被兑换并部分桥接到比特币。根据项目方消息,铸造的 CIOTX 代币中约有 3.55 亿枚已被永久锁定或冻结。
背景
被泄露的 ioTube 是 IoTeX 的跨链桥基础设施,连接 IoTeX Layer 1 与以太坊等其他网络。在以太坊上,桥的架构围绕着验证者合约(即 TransferValidatorWithPayload),该合约负责验证跨链结算消息并管理下游的铸币合约。这些合约包括持有桥储备资产的 TokenSafe,以及持有 CIOTX 等特定代币铸币权的 MintPool。
漏洞分析
根本原因是验证者合约所有者的私钥泄露。由于该桥依赖于单个 EOA(外部拥有账户)而没有多重签名或时间锁控制,因此拥有该密钥就获得了完整的管理权限。攻击者利用合约的 upgrade() 函数,将 TokenSafe 和 MintPool 合约的所有权转移到了攻击者控制的地址。这使得攻击者能够直接提取桥储备资产并未经授权地铸造大量 CIOTX。

攻击分析
-
泄露了以太坊上验证者合约所有者的密钥,获得了管理权限。
-
使用验证者合约 转移了
TokenSafe和MintPool合约的所有权。
-
从
TokenSafe中提取了约 440 万美元的储备资产(USDC、USDT、WBTC、WETH、BUSD 等),并通过MintPool铸造了超过 4 亿枚 CIOTX。 -
将被盗的储备代币兑换,并桥接到其他链。
结论
此事件是教科书式的单点故障密钥泄露。整个以太坊端的桥梁安全依赖于一个具有完全管理权限的单一 EOA,而没有任何多重签名保护或时间锁保障。一旦 EOA 的私钥被泄露,对关键桥梁组件的控制就 effectively lost。
该案例突显了中心化管理控制的风险,并强调了通过更强大的治理机制来分配升级和托管权限的重要性。
关于 BlockSec
BlockSec 是一家提供全栈区块链安全和加密合规服务的提供商。我们构建产品和服务,帮助客户在协议和平台的整个生命周期中进行代码审计(包括智能合约、区块链和钱包),实时拦截攻击,分析事件,追踪非法资金,并满足 AML/CFT 合规要求。
BlockSec 已在知名会议上发表多篇区块链安全论文,报告了多起 DeFi 应用的零日攻击,拦截了多次黑客攻击并挽回了超过 2000 万美元的损失,并保障了数十亿美元的加密资产。
-
官方 Twitter 账号:https://twitter.com/BlockSecTeam
-
🔗 BlockSec 审计服务 : 提交请求



