北京时间2022年6月16日,CertiK审计团队监测到InverseFinance遭受闪电贷攻击,导致了约1068.215ETH的损失。
这是近2个多月内,InverseFinance第二次遭遇闪电贷攻击。在此前于2022年4月2日发生的那起闪电贷攻击中,黑客成功获利约1450万美元。
目前1000枚ETH已被发送到TornadoCash,黑客的钱包内还余7.5万美元。
攻击步骤
①攻击者从AAVE闪电贷出了27,000枚WBTC代币。
②WBTC作为流动性被添加到CurvePool中。
③获得的LP代币被存入Yearn的Vault。
④Yearn的Vault代币作为InverstFinance的抵押品,被存入InverseFinance的Yearn3CryptoVault。
⑤然后,恶意的智能合约使用初始闪贷中剩余的26,775枚WBTC,在Curve3Crypto上换取7500万USDT。(WETH-USDT-WBTC)
⑥由于上述步骤操纵了价格预言机,因此抵押品的价格被拉高。随后,攻击者利用价格优势借到价值1000万美元的美元稳定币。
⑦7500万美元的USDT被26,626WBTC换回。
⑧攻击者的智能合约,用借来的DOLA向DOLA-3Pool的CurveMetapool提供流动性。
⑨之后流动性被移除,黑客换取了约1010万的USDT,这步骤的目的是把攻击所得的DOLA换成USDT。
⑩最终黑客使用Curve上的3CryptoPool将1000万USDT转换为451WBTC。剩余的99,976.294美元被保存在攻击者的智能合约中。
?偿还AAVE上的闪电贷。
漏洞分析
被攻击的合约使用YVCrv3CryptoFeed作为InverseFinanceDOLA借贷池的价格预言机。YVCrv3CryptoFeed价格预言机返回的价格会根据CurveUSDT-WBTC-WETH池中不同代币的余额来决定Yearn的Vault代币价格,因此可被攻击者操纵。
资产去向
攻击者在合约上留下了53.244枚WBTC和99,997.294枚USDT,并在他们的合约上调用了`withdrawERC20()`函数,随后将其撤回。WBTC被换成了983.290枚以太币,USDT被换成了84.925枚以太币,总计1068.215枚以太币。随后,1000枚以太币通过多次交易被发送到TornadoFinance,至此黑客结束操作。
InverseFinnace表示,目前已暂停了借贷,没有用户的资金会被拿走或者面临风险,此次事件也正在进一步调查当中,等待提供更多的细节。
写在最后
价格预言机导致价格被操纵是一个常见问题,通过审计,我们可以发现InverseFinance的风险。在此,CertiK的安全专家建议:
1.使用Chainlink作为价格预言机。
2.使用timeweightedaverageprice的价格作为价格预言机。
3.如果上述价格预言机都不可行,借贷平台应该保障“提供抵押品”和“借款”不在一个Block里面完成,以此来减少被闪电贷攻击的可能性。
攻击发生后,CertiK的推特预警账号以及官方预警系统已于第一时间发布了消息。同时,CertiK也会在未来持续于官方公众号发布与项目预警相关的信息。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。