币安智能链 PancakeBunny 攻击事件分析

创宇区块链安全实验室
创宇区块链安全实验室 机构得得号

2021年05月20日 专注构建区块链安全生态,致力于让人类进入安全的区块链世界。

摘要: 币安智能链(BSC)DeFi 收益聚合器 PancakeBunny(BUNNY)遭到来自外部开发人员的闪电贷攻击,实验室第一时间展开分析。

前言

世界时间 5 月 20 日 10:34:28,币安智能链(BSC)DeFi 收益聚合器 PancakeBunny(BUNNY)遭到来自外部开发人员的闪电贷攻击,黑客利用闪电贷套利 114631 个BNB,大约 4000W 美元,涉及金额巨大。知道创宇区块链安全实验室 旨在通过全盘梳理攻击流程和代码细节,一窥闪电贷套利的秘密。

基础信息

攻击者地址:0xa0acc61547f6bd066f7c9663c17a312b6ad7e187
攻击合约地址:0xcc598232a75fb1b361510bce4ca39d7bc39cf498
攻击交易 hash:
0x897c2de73dd55d7701e1b69ffb3a17b0f4801ced88b0c75fe1551c5fcce6a979
黑客利用闪电贷借大量 BNB,通过 PancakeSwap 操纵 USDT/BNB 以及 BUNNY/BNB 价格,获得大量 BUNNY 后再进行抛售,导致 BUNNY 价格闪崩,并且从中获利。实验室就该次攻击事件进行分析,在链上查询到了交易链接以及攻击合约地址。
攻击合约地址:
0xcc598232a75fb1b361510bce4ca39d7bc39cf498
攻击交易链接及截图:
https://bscscan.com/tx/0x897c2de73dd55d7701e1b69ffb3a17b0f4801ced88b0c75fe1551c5fcce6a979

图1

图2


 图3

攻击步骤详解

1.攻击者先调用图2交易,进行了一次抵押,此时会产生抵押奖励;
2.然后攻击者通过图1的交易从闪电贷平台借出大量 BNB 和 USDT,通过 PancakeSwap 的交易对去添加流动性获取lp代币(144,445),并将lp代币留在了交易对合约中;
3.因为攻击者进行过抵押,然后通过调用图3中 VaultFlipToFlip 合约的 getReward 函数来获取 BUNNY 代币奖励并取回先前抵押的流动性,然而在奖励计算时,获取铸币数量的逻辑出现问题导致产生大量的 BUNNY 代币(6972455),并通过 PancakeSwap 兑换成BNB,造成了 BUNNY 价格暴跌;
4.通过3步骤得到 BNB 之后归还到闪电贷地址,并从中获利 114631 个 BNB,价值大约 4000W 美元。

总结

本次攻击事件,攻击者在一笔交易中完成了一系列借用、兑换、获取奖励、归还闪电贷等操作,其主要原因还是项目在计算抵押奖励时获取 lp 价格出现了逻辑问题,导致黑客利用这一漏洞进行了攻击。

目前,我们在项目方的 twitter 上注意到,项目方已经暂停了一些项目的存取款功能,并商讨安全修复方案和赔偿计划。
如果有新的进展,实验室会在第一时间跟进和分析,请持续关注!

作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 创宇区块链安全实验室 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信