Harvest Finance今日遭受闪电贷攻击,损失超过400万美元。以下为慢雾安全团队对此事件的简要分析:
1. 攻击者通过Tornado.cash转入20ETH作为后续攻击手续费
2. 攻击者通过UniswapV2闪电贷借出巨额USDC与USDT
3. 攻击者先通过Curve的exchange_underlying函数将USDT换成USDC,此时Curve yUSDC池中的investedUnderlyingBalance将相对应的变小
4. 随后攻击者通过Harvest的deposit将巨额USDC充值进Vault中,充值的同时Harvest的Vault将铸出fUSDC,通过特定计算方式导致Vault铸出更多的fUSDC
5. 之后再通过Curve把USDC换成USDT将失衡的价格拉回正常
6. 最后只需要把fUSDC归还给Vault即可获得比充值时更多的USDC
7. 随后攻击者开始重复此过程持续获利
总结:此次攻击主要是fToken(fUSDC、fUSDT等)在铸币时采用的是Curve y池中的报价,导致攻击者可以通过巨额兑换操控预言机的价格来控制fToken的铸币数量。