By:Kong@慢雾安全团队
据慢雾区情报,币安智能链上DeFi收益聚合器PancakeBunny项目遭遇闪电贷攻击,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
攻击过程分析
1.攻击者先发起一笔交易,使用0.5个WBNB与约189个USDT在PancakeSwap中添加流动性并获取对应的LP,随后将LP抵押至PancakeBunny项目的VaultFlipToFlip合约中。
PEPE合约的黑名单已将价值800万美元的PEPE代币永久锁定:5月6日消息,软件工程师cygaar在推特上表示,其发现PEPE合约中有黑名单功能,可以阻止某人接收或发送代币,“0xAf23”开头的地址已被PEPE部署者列入了黑名单,该地址拥有的超2.5万亿枚PEPE被永久锁定,目前这些代币的价值约800万美元;该地址在Uniswap 交易对启动后的几个小时内购买了PEPE,购买8分钟后被PEPE部署者列入黑名单。除此之外没有其他地址被列入黑名单。黑名单永远无法修改,因为合约的所有权被放弃了。该合约有销毁功能,但没有进一步的铸币能力。这意味着PEPE的供应从现在开始只能减少。被列入黑名单的地址持有的代币也可以被视为永远锁定。[2023/5/6 14:46:29]
2.在LP抵押完成后,攻击者再次发起另一笔交易,在这笔交易中攻击者先从PancakeSwap的多个流动性池子中闪电贷借出巨量的WBNB代币,并从Fortube项目的闪电贷模块借出一定数量的USDT代币。随后使用借来的全部USDT代币与部分WBNB代币在PancakeSwap的WBNB-USDT池子添加流动性,并把获得的LP留在WBNB-USDT池子中。
华尔街日报:Alameda多次在FTX上币前囤积相关代币:11月15日消息,区块链分析公司Argus根据对链上数据的分析,在FTX表示在2021年初到今年3月之间上市代币期间,Alameda持有价值约6000万美元的代币,这些代币共有18个与以太坊区块链相关的上市代币。目前尚不清楚Alameda是否或何时出售了Argus追踪的代币。
据悉,在该时间段,FTX列出了近60个基于以太坊区块链的代币。“我们看到的是,他们基本上几乎总是在前一个月买入他们以前没有买入的头寸,”
Argus的联合创始人Omar Amjad说。Alameda和FTX的发言人没有立即回应《华尔街日报》置评请求。FTX前首席执行官SBF在2月份给《华尔街日报》的一封电子邮件中表示,Alameda与该平台上的所有其他做市商拥有相同的信息访问权限,而且其交易员没有特殊的客户信息访问权限、市场数据或交易。(华尔街日报)[2022/11/15 13:05:41]
3.由于在步骤1攻击者已经在VaultFlipToFlip合约中进行了抵押,因此攻击者在添加完流动性后直接调用VaultFlipToFlip合约的getReward函数来获取BUNNY代币奖励并取回先前抵押的流动性。
Coinbase即将上线Project Galaxy代币GAL:5月5日消息,Coinbase将于5月6日00:00左右上线Web3凭证数据网络Project Galaxy代币GAL,目前已开放GAL充提服务。此前,币安、FTX均已上线GAL。[2022/5/6 2:53:17]
4.在进行getReward操作时,其会调用BunnyMinterV2合约的mintForV2函数来为调用者铸造BUNNY代币奖励。
5.在mintForV2操作中,其会先将一定量(performanceFee)的LP转至WBNB-USDT池子中移除流动性,但由于在步骤2中攻击者把大量的LP留在了池子中,因此BunnyMinterV2合约将会收到大量的WBNB代币与USDT代币。
数字代币WAX发行2小时内狂跌99.9% WAX现价报4.66元:数字代币WAX发行2小时内狂跌99.9%,最近,数字代币Wax项目方在未通知用户的情况下,上线比特币交易所火币Pro后,在未通知用户和平台的情况下,突然修改地址规则,将发行初期1.85亿的Wax代币更改为18.5亿,增发幅度达到10倍。当天Wax连续暴跌,发行两小时内,Wax跌幅超过99.9%,一度跌至人民币5元左右,给用户造成大量损失。WAX之后价格一直低迷,现价报4.66元。[2017/12/28]
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价格计算方式,以避免被恶意操控的事故再次发生。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。