推荐平台 链接 平台介绍
币安网 注册链接 币安是全球领先的区块链生态系统,推出了一系列产品,其中包括最大的加密货币交易平台。我们的使命是在未来成为全球性加密货币基础架构供应商。
欧易OKX 注册链接 欧易是全球著名的数字资产交易平台之一,主要面向全球用户提供比特币、莱特币、以太币等数字资产的币币和衍生品交易服务。
HTX火币 注册链接 火币全球专业站,是火币集团旗下服务于全球专业交易用户的创新数字资产国际站,致力于发现优质的创新数字资产投资机会。

据慢雾安全团队情报,2023 年 6 月 1 日,Cellframe 遭到闪电贷攻击,Cellframe ERC20 v2 价格下跌 41.2%。慢雾安全团队第一时间介入分析,并将结果分享如下:

相关信息

攻击者地址:

0x2525c811EcF22Fc5fcdE03c67112D34E97DA6079

攻击者合约地址:

0x1e2a251b29e84e1d6d762c78a9db5113f5ce7c48

攻击交易:

0x943c2a5f89bc0c17f3fe1520ec6215ed8c6b897ce7f22f1b207fea3f79ae09a6

攻击者添加 LP(OLD) 交易:

0xe2d496ccc3c5fd65a55048391662b8d40ddb5952dc26c715c702ba3929158cb9

前置信息

此次攻击中出现多个新旧合约,我们将使用 LpMigration 合约中新旧合约的参数名作为本次攻击分析中的合约名。

address OLD_CELL: 0xf3E1449DDB6b218dA2C9463D4594CEccC8934346

address LP_OLD: 0x06155034f71811fe0D6568eA8bdF6EC12d04Bed2

address CELL: 0xd98438889Ae7364c7E2A3540547Fad042FB24642

address LP_NEW: 0x1c15f4E3fd885a34660829aE692918b4b9C1803d

慢雾:Cellframe 被黑简析

具体细节分析

1. 通过 DODO 的 DPPOracle 闪电贷 1000 个 BNB。

2. 通过 PancakeSwap V3 闪电贷 50 万枚 CELL。

3. 攻击者在 PancakeSwap V2 LP_NEW 池子中 ,将闪电贷来的 50 万枚 CELL Token 全部 swap 为 50 枚 BNB。这时,LP_NEW 池中仅剩 8 枚 BNB,而 CELL 有 55 万枚。

4. 紧接着,攻击者在另外一个 PancakeSwap V2 池子 LP_OLD 池中,将 900 枚 BNB swap 为 OLD_CELL。此时 LP_OLD 中的 BNB 数量为 902 枚,OLD_CELL 仅有 7 枚。

5. 在攻击者将 BNB 兑换成 OLD_CELL 后,我们发现攻击者直接调用 LpMigration 合约的 migrate 函数进行 LP 迁移。奇怪的是,在我们刚刚的分析里,攻击者并没有获取 LP Token 的操作,那么这些 LP Token 又是从哪里来的呢?

6. 于是回到攻击合约,通过攻击合约的前一笔交易可以发现,攻击者在交易中向 LP_OLD 池子添加流动性,获取 LP(OLD) Token。

慢雾:Cellframe 被黑简析

7. 攻击者对 LP_OLD 池的 LP(OLD) 进行连续 migrate 操作,细节如下:

先调用 migrateLP 函数移除 LP(OLD) 的流动性,并将代币返还给用户。由于池子 LP_OLD 中的 BNB 代币很多,在移除流动性时,计算所获得的 BNB 数量会增加,OLD_CELL 减少。随后,在 LP_NEW 池中,getReserves 获取到 BNB 和 CELL 的数量。由于之前的 swap 操作,LP_NEW 池中的 BNB 数量少,CELL 数量多,所以计算出来的 resoult 值会偏大,使得新计算出的 CELL 的 token1 值也偏大。

慢雾:Cellframe 被黑简析

8. 然而,原本 LpMigration 合约中又是存在 CELL 代币的,所以攻击者添加流动性所用的 token1 代币 CELL 都来自 LpMigration 合约。随后将计算出的结果添加流动性到 ROUTER_V2 池中。(PS: 这也是为什么在攻击发生后,Cellframe: Deployer 会通过 withdrawCELL() 函数将合约中的 CELL 代币全部取出)

慢雾:Cellframe 被黑简析

9. 也就是说,攻击者利用 LP_OLD 池中 BNB 多,OLD_CELL 少,通过移除流动性获取到更多的 BNB。而在 LP_NEW 池中 BNB 少,CELL 多的情况下,以少量的 BNB 和 CELL 就可以添加流动性。攻击者通过多次 migrate 操作获利。

慢雾:Cellframe 被黑简析

10. 最后,攻击者将 LP_NEW 的流动性移除,将 OLD_CELL 在 LP_OLD 池中兑换为 BNB,并在一个新的 CELL-BUSD 池中先兑换成 BUSD 再兑换成 BNB,偿还 FlashLoan,获利 245.522826177178247245 BNB。

总结

此次攻击的核心在于利用流动性迁移计算,攻击者操纵两个不同池子中的流动性致其不平衡,进而套利。

推荐平台 链接 平台介绍
Gate芝麻开门 平台介绍 Gate.io芝麻开门创立于2013年,是全球真实交易量TOP10的加密货币交易平台,向全球数千万用户提供安全可靠、真实透明的数字资产交易服务。
Bitget 注册链接 Bitget的背后是一群区块链技术的早期接受者,也是区块链未来发展的信仰者,一直致力于提供安全、一站式的交易解决方案,帮助用户更聪明地交易。
Bybit 注册链接 Bybit通过数字资产与传统金融的结合,引领数字资产的生态发展。提供一流的流动性,致力于打造业内最安全、公平、高效及人性化的交易服务平台。
派网 注册链接 派网提供多样化的量化交易机器人,用户可依照自身交易需求和策略选择最适合的机器人。 同时派网也提供合约交易与合约网格机器人,给予更方便的合约交易体验。