据慢雾区消息,2020年11月15日,ValueDeFi的ValueDeFiMultiStables保险库遭遇闪电贷攻击,慢雾安全团队于第一时间跟进并进行相关分析,以简要的形式呈现给大家,供大家参考。
1.攻击者首先从Aave中借出80000个ETH,为攻击做准备;
2.攻击者使用80000个ETH在UniswapWETH/DAI池中用闪电贷借出大量的DAI和在UniswapWETH/DAI兑换出大量的USDT;
3.用户调用ValueMultiVaultBank合约的deposit合约使用第2步中小部分的DAI进行充值,ValueMultiVaultBank合约中一共有3种资产,分别是3CRV、bCRV、和cCRV。ValueMultiVaultBank合约在铸币的时候会将合约中的bCRV,cCRV转换成以3CRV进行计价,转化的途径为bCRV/cCRV->USDC->3CRV。其中USDC->3CRV使用的是DAI/USDC/USD池中USDC/3CRV的价格。转换完成后,ValueDefi合约根据合约中总的3CRV的价值和攻击者充值的DAI数量计算mVUSD铸币的数量;
4.攻击者在CurveDAI/USDC/USDT池先使用第二步中剩余的大部分DAI和USDT兑换USDC,拉高DAI/USDC/USDT池中的USDC/3CRV的价格;
5.攻击者在ValueMultiVaultBank合约中发起3CRV提现,此时ValueMultiVaultBank合约和第3步一样,会先将合约中的bCRV,cCRV转换成以3CRV计价,由于在第4步中,USDC/3CRV的价格已经被拉高,导致换算的过程中,ValueMultiVaultBank合约中的bCRV,cCRV能换算成更多的3CRV,也就是说使用同等份额的mVUSD可以换取更多的3CRV;
6.拿到3CRV后,攻击者到Curve的DAI/USDC/USDT池中使用3CRV换回DAI,并在Uniswap中兑换回ETH,然后归还Aave的闪电贷。
总结:由于ValueDefi合约在铸币过程中将合约资产转换成3CRV时依赖CurveDAI/USDC/USDT池中USDC/3CRV的价格,导致攻击者可以通过操控CurveDAI/USDC/USDT池中USDC/3CRV的价格来操控mVUSD/3CRV的价值,从而获利。
相关链接:
(1)分析样本:
https://etherscan.io/tx/0x46a03488247425f845e444b9c10b52ba3c14927c687d38287c0faddc7471150a
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。