事件起因
2021年5月28日,有消息称BSC链上DEX协议、自动化的流动性协议的JulSwap遭到闪电贷攻击,知道创宇区块链安全实验室第一时间展开分析并将攻击结果简讯分享给大家,供参考研究。
事件分析
攻击者交易:https://bscscan.com/tx/0x1751268e620767ff117c5c280e9214389b7c1961c42e77fc704fd88e22f4f77a攻击合约地址:0x7c591aab9429af81287951872595a17d5837ce03
1.通过交易记录可以看出攻击者通过闪电贷借到70000个JULB代币,然后调用JULB-WBNB的交易对进行兑换得到1400个BNB,这时攻击合约中就有了1400个WBNB。2.随后攻击合约调用JulProtocolV2合约的addBNB函数进行抵押挖矿。该函数的功能就是通过转入WBNB,合约会计算出相应需要多少JULB代币进行添加流动性挖矿,随后会记录转入的WBNB的数量用于抵押挖矿,函数代码如下所示。
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转入钱包地址,攻击者就完成了一次闪电贷套利。
事件后续
JULBSWAP的CEO在twitter中发推文称此次事件由于闪电贷造成的兑换套利,官方将在后续更换新的版本并尝试开始回购JULB代币用于补偿用户。后续事件如果有新进展,实验室将会持续跟进,同时我们提醒各大项目方在defi项目中一定要做好代码审计测试,特别是在一些原有功能需求的更改上一定要做好数据测试和安全控制。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。