Splash 漏洞抽干 Cardano ADA/OADA 池
Splash 表示其 StableSwap 验证器中的缺陷使攻击者得以移除约 243 万 ADA 和 199 万 OADA。OADA 流动性消失后 Optim Finance 暂停了其协议。
By SongMarketCap
Updated:
Splash Protocol 已发布技术报告,解释了攻击者如何在 9 月 13 日抽干了 ADA/OADA StableSwap 池。
随后 Optim Finance 暂停其协议,移除了其控制下的剩余流动性,并警告用户 OADA 不再能通过常规路径换回 ADA。
Splash 称未有其他池型受影响。事件发生在应用层智能合约基础设施中,并未危及 Cardano 网络本身。
StableSwap 验证器如何被利用
漏洞位于 Splash 的 stableFnPoolT2t 验证器中,该验证器为这只双资产 ADA/OADA StableSwap 池提供支持。
该验证器通过从池的总余额中减去累计协议费用来计算可交易储备。然而,它未验证所得储备是否仍为正数。它也缺乏对协议费用增幅的充分上限约束,并且未强制执行预期的交换方向,即一项资产进入池内而另一项资产流出。
攻击者在两笔交易中利用了这些缺失的控制。
在第一笔交易中,于 00:47:36 UTC 执行,攻击者存入了 9,870 ADA 和极少量 OADA。几乎全部 ADA 存款被记作协议费用,向池的可交易 ADA 储备中仅增加了 1 个 lovelace。
四十五秒后,第二笔交易将计算得出的可交易 ADA 储备推至零以下。由于 StableSwap 不变式在负数储备下被评估,验证器接受了一笔同时从池中移除 ADA 与 OADA 的交易。
LP 代币供应保持不变,在此次利用期间没有铸造或销毁任何 LP 代币。
Splash 表示,以下两种额外防护中的任意一种都能阻止此次攻击:要求可交易储备保持为正,或对累计协议费用的变化实施上限。
报告还称,执行的交换分支与此前审计过的代码一致。2024 年的审计并未识别出此次攻击所利用的关于协议费用、正数储备与交换方向的检查缺失。
为何该池对 OADA 至关重要
OADA 是由 Optim Finance 开发的与 ADA 挂钩的合成资产。用户可通过存入 ADA 来铸造 OADA,但该系统不提供将 OADA 直接赎回为 ADA 的机制。
相反,用户通常通过 Splash 上的 ADA/OADA StableSwap 池退出。该池还支持 Optim 的 Algorithmic Market Operation,用以管理流动性以使 OADA 贴近其与 ADA 的锚定。
官方事故报告将此次利用归因于 Splash 的验证器。它未指出 Optim 的 AMO 存在漏洞,也未将该事件描述为 Optim 合约被攻破。
抽干 Splash 池移除了 OADA 的主要退出路径以及用于支撑其锚定的市场。
随后,攻击者通过一只 Minswap V2 OADA/FLDT 池卖出了移除的 OADA。该交换产生了约 563,073 FLDT,之后又被兑换为约 115,323 ADA。
Optim 报告称,攻击者还清空了其他交易场所中的 OADA 流动性。那些协议并未通过相同的验证器缺陷被攻破。它们的市场在主要的 Splash 池已被抽干后才受到影响。
接下来会发生什么
Optim 表示其协议已暂停,且所有可用流动性均已被移除。其要求任何为 OADA 或 Optim 治理代币 O 提供流动性的用户立即撤出,并警告用户不要新建 OADA 流动性头寸。
Optim 尚未明确此次暂停是否涵盖其所有产品与模块,抑或仅限于与 OADA 相连的操作。
Splash 已将受影响的 StableSwap 代码标记为存在漏洞,并正在追踪被发送至与交易所充值系统相关地址的资金。团队表示计划就相关交易信息联系 KuCoin 与 Gate.io。
Splash 还邀请攻击者通过潜在的白帽解决方案归还资金,该方案将包含奖励且不作进一步升级。
目前尚无资金被公开确认已归还。Splash 与 Optim 均未宣布赔付计划、恢复时间表或修复后的验证器发布。