JulSwap闪电贷攻击分析及事件后续

创宇区块链安全实验室2021-05-31 12:01:21

事件起因

2021 年 5 月 28 日,有消息称 BSC 链上DEX协议、自动化的流动性协议的 JulSwap 遭到闪电贷攻击,知道创宇区块链安全实验室第一时间展开分析并将攻击结果简讯分享给大家,供参考研究。

JulSwap闪电贷攻击分析及事件后续

事件分析

攻击者交易:

https://bscscan.com/tx/0x1751268e620767ff117c5c280e9214389b7c1961c42e77fc704fd88e22f4f77a攻击合约地址:0x7c591aab9429af81287951872595a17d5837ce03

JulSwap闪电贷攻击分析及事件后续

1. 通过交易记录可以看出攻击者通过闪电贷借到70000个 JULB 代币,然后调用 JULB-WBNB 的交易对进行兑换得到1400个 BNB,这时攻击合约中就有了1400个 WBNB

2. 随后攻击合约调用JulProtocolV2合约(0x41a2F9AB325577f92e8653853c12823b35fb35c4)的 addBNB 函数进行抵押挖矿。该函数的功能就是通过转入 WBNB,合约会计算出相应需要多少 JULB 代币进行添加流动性挖矿,随后会记录转入的 WBNB 的数量用于抵押挖矿,函数代码如下所示。

JulSwap闪电贷攻击分析及事件后续

3.由于闪电贷兑换了 WBNB,所以 JulProtocolV2 合约错误的计算出了14.4w个 JULB 代币能与515个 WBNB 去交易对中添加流动性,并把 lp 代币转入了 JulProtocolV2 合约。此时攻击合约还剩下885个 WBNB

4.攻击者再用剩下的 WBNB 兑换为 JULB,由于 pair 中添加了大量的 JULB 代币的流动性,所以在兑换时只需要363个 WBNB 就可以兑换出7w个 JULB 代币用于还贷,合约还剩下885-363=522个 WBNB,最后把这些 WBNB 转入钱包地址,攻击者就完成了一次闪电贷套利。

事件后续

JULBSWAPCEO 在 twitter 中发推文称此次事件由于闪电贷造成的兑换套利,官方将在后续更换新的版本并尝试开始回购 JULB 代币用于补偿用户。后续事件如果有新进展,实验室将会持续跟进,同时我们提醒各大项目方在 defi 项目中一定要做好代码审计测试,特别是在一些原有功能需求的更改上一定要做好数据测试和安全控制。

JulSwap闪电贷攻击分析及事件后续

JulSwap闪电贷攻击分析及事件后续

声明:该文观点仅代表作者本人,币妈妈信息发布平台,币妈妈仅提供信息存储空间服务。

创宇区块链安全实验室

文章:14 粉丝:204

+ 关注