慢雾:Harvest.Finance 被黑事件简析_USD:EST

2020年10月26号,据慢雾区消息HarvestFinance项目遭受闪电贷攻击,损失超过400万美元。以下为慢雾安全团队对此事件的简要分析。

1.攻击者通过Tornado.cash转入20ETH作为后续攻击手续费

2.攻击者通过UniswapV2闪电贷借出巨额USDC与USDT

3.攻击者先通过Curve的exchange_underlying函数将USDT换成USDC,此时CurveyUSDC池中的investedUnderlyingBalance将相对应的变小

4.随后攻击者通过Harvest的deposit将巨额USDC充值进Vault中,充值的同时Harvest的Vault将铸出fUSDC,而铸出的数量计算方式如下:

amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());

计算方式中的underlyingBalanceWithInvestment一部分取的是Curve中的investedUnderlyingBalance值,由于Curve中investedUnderlyingBalance的变化将导致Vault铸出更多的fUSDC

5.之后再通过Curve把USDC换成USDT将失衡的价格拉回正常

6.最后只需要把fUSDC归还给Vault即可获得比充值时更多的USDC。

7.随后攻击者开始重复此过程持续获利

其他攻击流程与上诉分析过程类似

参考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877

总结:此次攻击主要是HarvestFinance的fToken(fUSDC、fUSDT...)在铸币时采用的是Curvey池中的报价(即使用Curve作为喂价来源),导致攻击者可以通过巨额兑换操控预言机的价格来控制HarvestFinance中fToken的铸币数量,从而使攻击者有利可图。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-2:896ms