慢雾科技2021-05-20 15:16:27
据慢雾区情报,币安智能链上 DeFi 收益聚合器 PancakeBunny 项目遭遇闪电贷攻击,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
1. 攻击者先发起一笔交易,使用 0.5 个 WBNB 与约 189 个 USDT 在 PancakeSwap 中添加流动性并获取对应的 LP,随后将 LP 抵押至 PancakeBunny 项目的 VaultFlipToFlip 合约中。
2. 在 LP 抵押完成后,攻击者再次发起另一笔交易,在这笔交易中攻击者先从 PancakeSwap 的多个流动性池子中闪电贷借出巨量的 WBNB 代币,并从 Fortube 项目的闪电贷模块借出一定数量的 USDT 代币。随后使用借来的全部 USDT 代币与 部分 WBNB 代币在 PancakeSwap 的 WBNB-USDT 池子添加流动性,并把获得的 LP 留在 WBNB-USDT 池子中。
3. 由于在步骤 1 攻击者已经在 VaultFlipToFlip 合约中进行了抵押,因此攻击者在添加完流动性后直接调用 VaultFlipToFlip 合约的 getReward 函数来获取 BUNNY 代币奖励并取回先前抵押的流动性。
4. 在进行 getReward 操作时,其会调用 BunnyMinterV2 合约的 mintForV2 函数来为调用者铸造 BUNNY 代币奖励。
5. 在 mintForV2 操作中,其会先将一定量 (performanceFee) 的 LP 转至 WBNB-USDT 池子中移除流动性,但由于在步骤 2 中攻击者把大量的 LP 留在了池子中,因此 BunnyMinterV2 合约将会收到大量的 WBNB 代币 与 USDT 代币。
6. 在完成移除流动性后会调用 zapBSC 合约的 zapInToken 函数分别把步骤 5 中收到的 WBNB 与 USDT 代币转入 zapBSC 合约中。
7. 而在 zapInToken 操作中,其会在 PancakeSwap 的 WBNB-USDT 池子中把转入的 USDT 兑换成 WBNB。随后再将合约中半数 WBNB 在 PancakeSwap 的 WBNB-BUNNY 池子中兑换成 BUNNY 代币,并将得到的 BUNNY 代币与剩余的 WBNB 代币在 WBNB-BUNNY 池子中添加流动性获得 LP,并将此 LP 转至 mintForV2 合约中。而由于步骤 5 中接收到的非预期的大量的 WBNB,并且进行 WBNB 兑换成 BUNNY 代币的操作,因此 WBNB-BUNNY 池子中的 WBNB 数量会大量增加。
8. 在完成 zapInToken 操作后会计算 BunnyMinterV2 合约当前收到的 WBNB-BUNNY LP 数量,并将其返回给 mintForV2。随后将会调用 PriceCalculatorBSCV1 合约的 valueOfAsset 函数来计算这些 LP 的价值,这里计算价值将会以 BNB 结算 (即单个 LP 价值多少个 BNB)。
9. 在 valueOfAsset 计算中,其使用了 WBNB-BUNNY 池子中 WBNB 实时的数量乘 2 再除以 WBNB-BUNNY LP 总数量来计算单个 LP 的价值 (valueInBNB)。但经过步骤 7,我们可以发现 WBNB-BUNNY 池子中的 WBNB 非预期的数量大量变多了,这就导致了在计算单个 LP 的价值会使得其相对 BNB 的价格变得非常高。
10. 随后在 mintForV2 中,合约会以在步骤 9 中计算出的 LP 价值来通过 amountBunnyToMint 函数计算需要给攻击者铸造多少 BUNNY 代币。但由于价格计算方式的缺陷导致最终 LP 的价格被攻击者恶意的操控抬高了,这就导致了 BunnyMinterV2 合约最终给攻击者铸造了大量的 BUNNY 代币 (约 697 万枚)。
11. 在拿到 BUNNY 代币后,攻击者将其分批卖出成 WBNB 与 USDT 以归还闪电贷。完成整个攻击后拿钱走人。
总结:
这是一次典型的利用闪电贷操作价格的攻击,其关键点在于 WBNB-BUNNY LP 的价格计算存在缺陷,而 BunnyMinterV2 合约铸造的 BUNNY 数量依赖于此存在缺陷的 LP 价格计算方式,最终导致攻击者利用闪电贷操控了 WBNB-BUNNY 池子从而拉高了 LP 的价格,使得 BunnyMinterV2 合约铸造了大量的 BUNNY 代币给攻击者。慢雾安全团队建议,在涉及到此类 LP 价格计算时可以使用可信的延时喂价预言机进行计算或者参考此前 Alpha Finance 团队。
以太坊Layer 2必知必会2023-04-26 15:03:27
浅析NFT未来:仅少数项目上涨 出圈项目会成赢家2023-04-26 14:15:26
E-CNY时代来临:当你的工资成为数字人民币2023-04-26 12:43:48
浅谈为什么MEV搜索者矿池并不可行?2023-04-26 12:08:40
"庄家"互撕 曝出加密巨头拉的那些"帮派"2023-04-26 11:59:08
怎样到达Web3世界:使用Web3技术的公司及集成到业务的步骤2023-04-26 11:53:15
稳定币项目 HAI、Starknet 2023 路线图2023-04-26 11:46:35
ChatGPT类产品安全隐患解决?英伟达发布开源工具包2023-04-26 11:26:24
蚂蚁集团发布HOU、AntChainBridge、Web3开放联盟链等多个Web3产品2023-04-26 11:24:46
ChatGPT背后的算力博弈 中国企业亟待打破美国桎梏2023-04-26 10:59:28
简析DWF Labs:出手频繁 颇具争议的加密做市商2023-04-26 10:48:45
NFT 交易平台生存现状研究:后版税战争时代下的龙头之争2023-04-26 09:20:51
以太坊提款功能开启后的带宽使用情况2023-04-26 08:30:24
上海升级提款效应:数据揭示 LSD 项目们的表现2023-04-26 07:28:37
3分钟读懂基于LayerZero的多链抗MEV DEX聚合器Cashmere2023-04-25 20:05:34
对话去中心化流动性质押协议Rocket Pool:如何促进以太坊Staking民主化?2023-04-25 19:02:21
Bankless:欧美都想监管稳定币 他们怎么做?2023-04-25 17:43:44
Coinbase起诉SEC全文:请在合理时间内回应加密规则请愿书2023-04-25 16:43:34
慢雾:Web3 假钱包第三方源调查分析2023-04-25 15:43:36
Binance Sensei介绍:您的Web3 AI导师2023-04-25 13:20:55