代币闪崩,差点归零 - PancakeBunny 被黑简析_BNB:UNN

By:Kong@慢雾安全团队

据慢雾区情报,币安智能链上DeFi收益聚合器PancakeBunny项目遭遇闪电贷攻击,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:

攻击过程分析

1.攻击者先发起一笔交易,使用0.5个WBNB与约189个USDT在PancakeSwap中添加流动性并获取对应的LP,随后将LP抵押至PancakeBunny项目的VaultFlipToFlip合约中。

调查:56%的ERC-20代币在上线主流CEX时涉嫌内幕交易:6月28日消息,加密分析公司 Solidus Labs 调查报告显示,56% 的 ERC-20 代币在首次上线三个顶级中心化加密货币交易平台时涉嫌内幕交易。

该报告研究了全球最大的三个中心化交易平台的 234 个 ERC-20 代币上市公告,据链上数据显示,调查范围中的 411 笔交易与 100 多名内部人士有关。许多实体在代币上市 CEX 前使用 DeFi 交易平台购买代币,并在宣布上市且价格上涨后通过出售这些代币来获利。据估计,内部人士从非法交易中获利总计约 2400 万美元。

Solidus Labs 联合创始人 Chen Arad 表示,如果列出的所有代币中有一半以上都不是可以通过信托方式购买的代币,那么这就是一个效率较低的市场。这个问题是将加密货币提升到新水平的障碍之一。[2023/6/28 22:06:34]

2.在LP抵押完成后,攻击者再次发起另一笔交易,在这笔交易中攻击者先从PancakeSwap的多个流动性池子中闪电贷借出巨量的WBNB代币,并从Fortube项目的闪电贷模块借出一定数量的USDT代币。随后使用借来的全部USDT代币与部分WBNB代币在PancakeSwap的WBNB-USDT池子添加流动性,并把获得的LP留在WBNB-USDT池子中。

联合利华和SAP合作进行区块链代币追踪试点:金色财经报道,本周早些时候,联合利华和SAP宣布,他们将合作在联合利华的供应链中试点GreenToken by SAP解决方案。这项基于区块链的技术将使联合利华能够追踪其全球棕榈油资源,确保这种原材料的来源是透明和可持续验证的。联合利华拥有沃尔冰激凌、Magnum以及清洁产品Omo和Comfort等品牌。[2022/3/27 14:20:49]

3.由于在步骤1攻击者已经在VaultFlipToFlip合约中进行了抵押,因此攻击者在添加完流动性后直接调用VaultFlipToFlip合约的getReward函数来获取BUNNY代币奖励并取回先前抵押的流动性。

多资产数字钱包Swipe销毁SXP代币合约的管理密钥:3月4日消息,多资产数字钱包和Visa借记卡平台Swipe表示,在启动Swip??eSwap主网的过程中,官方已销毁SXP代币合约的管理密钥,为完全去中心化的协议铺平了道路。[2021/3/4 18:14:39]

4.在进行getReward操作时,其会调用BunnyMinterV2合约的mintForV2函数来为调用者铸造BUNNY代币奖励。

5.在mintForV2操作中,其会先将一定量(performanceFee)的LP转至WBNB-USDT池子中移除流动性,但由于在步骤2中攻击者把大量的LP留在了池子中,因此BunnyMinterV2合约将会收到大量的WBNB代币与USDT代币。

Dante Federighi:建议CME开始区块链交易和代币化股票:CME即将举行的董事会选举提名人、Fortezza Forza RMC基金创始人Dante Federighi认为,芝商所(CME)现在是开始开采比特币和加密货币以及发行代币化股票的时候了。Federighi表示,可以将B股数字化并分拆,让它们在区块链上自由公开交易,以追踪所有权和交易,将提高效率。他的策略的一部分是实施一个新的治理体系,即每个“新的CME代币”有一个用户,这可能会消除“所有106个和电子公司结构”。通过允许对新的CME代币进行分拆和租赁,Federighi设想了一系列未开发的租赁机会,更高的交易量以及更具流动性的CME产品交易市场。(The Daily Hodl)[2020/3/27]

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-BUNNYLP数量,并将其返回给mintForV2。随后将会调用PriceCalculatorBSCV1合约的valueOfAsset函数来计算这些LP的价值,这里计算价值将会以BNB结算(即单个LP价值多少个BNB)。

9.在valueOfAsset计算中,其使用了WBNB-BUNNY池子中WBNB实时的数量乘2再除以WBNB-BUNNYLP总数量来计算单个LP的价值(valueInBNB)。但经过步骤7,我们可以发现WBNB-BUNNY池子中的WBNB非预期的数量大量变多了,这就导致了在计算单个LP的价值会使得其相对BNB的价格变得非常高。

10.随后在mintForV2中,合约会以在步骤9中计算出的LP价值来通过amountBunnyToMint函数计算需要给攻击者铸造多少BUNNY代币。但由于价格计算方式的缺陷导致最终LP的价格被攻击者恶意的操控抬高了,这就导致了BunnyMinterV2合约最终给攻击者铸造了大量的BUNNY代币(约697万枚)。

11.在拿到BUNNY代币后,攻击者将其分批卖出成WBNB与USDT以归还闪电贷。完成整个攻击后拿钱走人。

总结

这是一次典型的利用闪电贷操作价格的攻击,其关键点在于WBNB-BUNNYLP的价格计算存在缺陷,而BunnyMinterV2合约铸造的BUNNY数量依赖于此存在缺陷的LP价格计算方式,最终导致攻击者利用闪电贷操控了WBNB-BUNNY池子从而拉高了LP的价格,使得BunnyMinterV2合约铸造了大量的BUNNY代币给攻击者。

慢雾安全团队建议,在涉及到此类LP价格计算时可以使用可信的延时喂价预言机进行计算或者参考此前AlphaFinance团队研究的LP价格计算方式,以避免被恶意操控的事故再次发生。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:62ms0-0:993ms