所以 JulProtocolV2 合约错误的计算出了14.4w个 JULB 代币能与515个 WBNB 去交易对中添加流动性。这时攻击合约中就有了1400个 WBNB。事件分析攻击者交易:https://bscscan.com/tx/0x1751268e620767ff117c5c280e9214389b7c1961c42e77fc704fd88e22f4f77a攻击合约地址:0x7c591aab9429af81287951872595a17d5837ce03 1. 通过交易记录可以看出攻击者通过闪电贷借到70000个 JULB 代币。
2021 年 5 月 28 日,有消息称 BSC 链上 DEX 协议、自动化的流动性协议的 JulSwap 遭到闪电贷攻击,知道创宇区块链安全实验室 第一时间展开分析并将攻击结果简讯分享给大家,供参考研究。

攻击者交易:

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

3.由于闪电贷兑换了 WBNB,所以 JulProtocolV2 合约错误的计算出了14.4w个 JULB 代币能与515个 WBNB 去交易对中添加流动性,并把 lp 代币转入了 JulProtocolV2 合约。此时攻击合约还剩下885个 WBNB。
JULBSWAP 的 CEO 在 twitter 中发推文称此次事件由于闪电贷造成的兑换套利,官方将在后续更换新的版本并尝试开始回购 JULB 代币用于补偿用户。后续事件如果有新进展,实验室将会持续跟进,同时我们提醒各大项目方在 defi 项目中一定要做好代码审计测试,特别是在一些原有功能需求的更改上一定要做好数据测试和安全控制。

