安全实验室第一时间对本次事件深入跟踪并进行分析。0x02:事件详情
交易细节如下图所示:
浏览上图的交易过程可知,攻击合约利用闪电贷借取代币WFTM和BTC,将借取的代币与自己铸造的代币质押到SpiritSwap里增加流动性获取lp代币,而问题就出现在攻击者通过depositFor()实现质押的过程中。
通过Tenderly(https://http://dashboard.tenderly.co/tx/fantom/0x19315e5b150d0a83e797203bb9c957ec1fa8a6f404f4f761d970cb29a74a5dd6/debugger调试该笔交易,攻击者多次递归调用depositFor函数,利用该函数获取大量代币:
Grim Finance攻击者将1900枚ETH转移到Tornado Cash:金色财经报道,据派盾(PeckShield)社交媒体披露,Grim Finance 攻击者已将 1900 枚 ETH 转移到 Tornado Cash。据悉,Grim Finance 攻击者今日在 Uniswap 上将 300 万枚 DAI 交易为 1830 枚 ETH。 此前报道,Grim Finance 于 2021 年 12 月遭到重入攻击,该攻击窃取了价值约 3000 万美元的加密资产。今年 8 月 19 日,Grim Finance 攻击者陆续向 Tornado Cash 转入 1800 枚和 1200 枚 ETH。[2022/8/24 12:45:49]
0x03:漏洞分析
Poloniex:除GRIN/BTC交易对之外 其他服务已全面恢复:Poloniex官方更新维护进展,除GRIN/BTC交易对将继续关闭外,所有服务现已全面恢复。[2020/4/24]
depositFor()函数位于https://http://ftmscan.com/address/0x660184ce8af80e0b1e5a1172a16168b15f4136bf#code的第1115行:
该函数的safeTransferFrom()方法从IERC20(token)调用,调用完该方法后,余额balance也会随之变动,最后通过_mint()方法向用户添加质押凭证代币。其中调用的变量token可控,导致攻击者可以自己实现safeTransferFrom()方法,将该方法重入到depositFor()发起攻击。
动态 | Poloniex将上线Grin交易:Circle旗下的虚拟货币交易所 Poloniex(P网)宣布将上线Grin。Poloniex 同时宣布,将把一年内Grin交易费中的25%到50%捐赠给该项目的开发基金Grin General Fund。[2019/2/15]
以实施了5次重入攻击为例,开始_pool的值为0,在重入depositFor方法的前四次里,攻击者一直传入自己铸造的代币,_pool的值会一直保持为0,但在第五次,也就是最后一次传入100个受认可的代币时,_after的值会变成100,而_afer-_pool的差值_amount也就是100,最后由于重入了5次,导致合约会向攻击者铸造100*5的质押凭证代币。
其后果就是攻击者向该合约质押自己铸造不受认可的代币,同样会增加质押总量,最后利用多出来的质押凭证实现套利。
0x04:修复方案
1.由于depositFor()方法里的token可控才是导致这次攻击事件的原因,因此只需要在传递参数的时候让token不可控就行:
2.由于套利的原因是depositFor()方法里存在修改代币数量的函数,因此还可以将修改代币的方法单独实现,这样即使token变量可控,也无法成功套利:
3.锁定交易token:
0x05:总结
经过完整分析,知道创宇区块链安全实验室明确了该次攻击事件的源头并非网传的闪电贷攻击,攻击者利用GrimBoostVault合约的depositFor方法参数可控,实施了重入攻击,将自己的铸造的无价值代币兑换成了质押凭证,最后通过withdrawAll方法实现套利,而闪电贷?攻击者只是利用闪电贷扩大了套利值。
对于合约代码而言安全性是十分重要的,每一个未经验证的传入参数都可能导致巨大的经济损失,开发者在编写重要操作方法时,须记住零信任原则,谨慎对待每一个传入参数。
尊敬的KuCoin用戶:KuCoin合約已上線WAXP、CRO永續合約,支持1-20倍杠杆,以USDT穩定幣結算.
1900/1/1 0:00:00译文:HooResearch原文:MintVentures1.报告要点1.1核心投资逻辑RariCapital目前的业务专注于长尾资产借贷追踪。其业务发展符合行业发展趋势.
1900/1/1 0:00:0012月27日,全球知名交易所JPEX正式被非小号收錄,用戶可以在非小号查看JPEX已上架項目的相關信息及行情.
1900/1/1 0:00:00Gate.io官網已正式上線借貸挖礦幫助文檔,提供了借貸挖礦的常見問題解答與操作流程介紹。現在查閱文檔、參與知識問答並完成活動任務,即有機會輕鬆贏取總價值$3,000美元點卡獎勵.
1900/1/1 0:00:00Gate.ioHODL&Earnwilllaunchits48thsharkfinstructuredproduct“SharkFinBTC6-DayNo.
1900/1/1 0:00:00尊敬的XT用户:由于杠杆ETF产品MASK3S、CHZ3S的单价低至0.08USDT,触发了XT杠杆ETF产品份额合并机制.
1900/1/1 0:00:00