一.事件背景
8月17日,有消息爆出BSC上DeFi协议XSURGE遭到闪电贷攻击,被盗金额价值500万美金。知道创宇区块链安全实验室迅速展开分析。
二.攻击合约及交易
攻击合约地址:
0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46
0xScope:币安10亿美元“行业复苏计划”地址目前仍无任何动作:12月30日消息,Web3知识图谱协议0xscope发推表示,币安推出10亿美元“行业复苏计划”至今已有36天时间,目前该计划使用的0x043a开头地址除了50美元的测试转账外并无其他动作。[2022/12/30 22:16:40]
攻击交易链接:
https://bscscan.com/tx/0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2
Axie Infinity将养殖费用由2AXS降为1AXS:9月23日消息,NFT游戏Axie Infinity将养殖费用由2AXS降为1AXS。养殖费用是玩家繁殖Axies以创造新宠物时收取的费用,是Axie经济系统的核心,在此系统中玩家生产出新的Axies并消耗SLP。此前报道,8月11日Axie Infinity基于AXS和SLP相对价值的变化,将养殖费用由4AXS降为2AXS。[2021/9/23 17:00:21]
三.事件复盘
公告 | 币安完成6月份GAS、ONG、VTHO、NPXS发放:据币安公告,币安目前已完成2019年6月份GAS、ONG、VTHO、NPXS的发放。[2019/7/6]
分析攻击交易,攻击者通过闪电贷借入BNB后购买surge代币,然后不断卖出再买入,最后套利离场,分析代币源代码可以发现,这次漏洞的原因是因为合约内的sell函数导致的重入漏洞。
sell函数计算完卖出代币所值BNB数量后,合约会把BNB发送给攻击合约,但是如果攻击合约此时在回退函数中又执行了purchase函数,就会导致重入的发生。
观察此次函数调用产生的影响,由于这是在sell函数中调用的purchase,所以totaslSupply还没有销毁掉sell的SurgeToken,导致totalSupply高于正常值,bnbAmount和prevBNBAmount的值会因为94%的手续费问题而有所变化,但也影响不大。
也就是说攻击者通过买入-卖出-买入的操作,以更低的代币价格获取到了更多的surge代币,值得一提的是因为sell函数中nonReentrant修饰函数的影响,攻击合约只能重复之前的操作,也说明了防重入修饰函数不能完全解决这种伪重入问题,最好的方法还是限制call函数转账调用,用更安全的transfer函数限制转账gas消耗。
四.事件总结
最近链上安全事件频繁发生,这次重入漏洞又造成了重大的经济损失,我们建议各大项目方认真审视自身代码,做好安全保障。同时官方发文称将会尽量弥补受害者被盗资金,如有最新进展,我们将会及时跟进。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。