慢雾简析 PancakeBunny 被黑:由 WBNB-BUNNY LP 价格计算存在缺陷所致_BUNNY:BUNNYINU

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

撰文:慢雾

今日6点35分左右开始,币安智能链上DeFi收益聚合器PancakeBunny从240美元闪崩,一度跌破2美元,最高跌幅一度超99%。

对此PancakeBunny回应称,遭到来自外部人员的闪电贷攻击,共损失114,631枚BNB和697,245枚BUNNY,按当时价格计算约合4200万美元。

慢雾余弦:比特浏览器用户私钥泄露事件已造成至少41万美元损失:8月26日消息,慢雾余弦于X平台(原推特)发文表示,比特浏览器发生用户私钥泄露事件,目前造成至少41万美元的损失。[2023/8/27 12:58:50]

简单来说,黑客使用PancakeSwap借入了大量BNB,之后继续操纵USDT/BNB以及BUNNY/BNB价格,从而获得大量BUNNY并进行抛售,导致BUNNY价格闪崩,最后黑客通过PancakeSwap换回BNB。

慢雾安全团队也对此次被黑事件进行了详细分析,具体如下:

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

慢雾:攻击Ronin Network的黑客地址向火币转入3750枚 ETH:3月30日消息,慢雾发推称,攻击Axie Infinity侧链Ronin Network的黑客地址向交易所火币转入3750枚ETH。此前金色财经报道,Ronin桥被攻击,17.36万枚ETH和2550万USDC被盗。[2022/3/30 14:26:38]

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

慢雾余弦:哪怕安全审计过的DeFi都可能存在权限过大风险:慢雾科技创始人今日发微博称,哪怕安全审计过的DeFi都可能存在权限过大风险,“权限过大”一直以来是个争议,就看这些权限是什么,比如常见的:铸币、销毁、升级、关键数值调整、关键权限变更、关键风控等等,“权限过大”极端了就可能就成为某种“后门”,这个是需要警惕的。DeFi项目方有责任解释“权限过大”的意图,透明出来;安全审计公司也有义务。[2020/9/2]

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

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

声音 | 慢雾安全团队:区块链技术本身存在安全缺陷 可参考以太坊漏洞赏金计划实现安全:据火讯财经报道,慢雾安全团队表示,区块链技术本身存在安全缺陷,研究区块链安全的可以参考以太坊漏洞赏金计划实现安全,包括:1. 客户端协议实现安全;2. 网络安全;3. 节点安全;4. 客户端应用安全;5. 算法使用安全;6. Solidity 语言安全;7. ENS 安全。[2018/7/2]

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

在完成移除流动性后会调用zapBSC合约的zapInToken函数分别把步骤5中收到的WBNB与USDT代币转入zapBSC合约中。

慢雾安全团队发布 BEC智能合约无限转币漏洞分析及预警:据了解,4月22日13时左右,BEC出现异常交易。慢雾安全团队第一时间分析发现,BEC智能合约(https://etherscan.io/address/0xc5d105e63711398af9bbff092d4b6769c82f793d)中的batchTransfer批量转账函数存在漏洞,攻击者可传入很大的value数值,使cnt*value后超过unit256的最大值使其溢出导致amount变为0。

通过此次分析,慢雾安全团队建议智能合约开发者在批量转账时严格校验转出总额amount是否大于0,及在for循环内执行balances[msg.sender].sub(value)操作。

这类漏洞属于不可逆的破坏型漏洞,慢雾安全团队建议其他智能合约发布方及时自查。[2018/4/23]

而在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数量会大量增加。

在完成zapInToken操作后会计算BunnyMinterV2合约当前收到的WBNB-BUNNYLP数量,并将其返回给mintForV2。随后将会调用PriceCalculatorBSCV1合约的valueOfAsset函数来计算这些LP的价值,这里计算价值将会以BNB结算(即单个LP价值多少个BNB)。

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

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

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

慢雾团队称,这是一次典型的利用闪电贷操作价格的攻击,其关键点在于WBNB-BUNNYLP的价格计算存在缺陷,而BunnyMinterV2合约铸造的BUNNY数量依赖于此存在缺陷的LP价格计算方式,最终导致攻击者利用闪电贷操控了WBNB-BUNNY池子从而拉高了LP的价格,使得BunnyMinterV2合约铸造了大量的BUNNY代币给攻击者。慢雾安全团队建议,在涉及到此类LP价格计算时可以使用可信的延时喂价预言机进行计算或者参考此前AlphaFinance团队。

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

慢雾科技

现已在非小号资讯平台发布68篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9993195.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

Bitfinex一周简报

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

金智博客

酷币院长说币行情分析(5/20)_CAKESWAP:智能链

今天简单写一下,最近风声紧,只能猥琐了~今天早上写了一段我对昨天下跌的认识,这里再补充一下,关于下跌原因我不讨论,但下跌的本能动因是什么不知道大家是否了解,而这才是影响盘面的真正的原因.

[0:0ms0-5:158ms