链闻消息,据慢雾安全团队分析,Harvest Finance 项目遭受闪电贷攻击事件主要分为以下几步: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;5. 之后再通过 Curve 把 USDC 换成 USDT 将失衡的价格拉回正常;6. 最后只需要把 fUSDC 归还给 Vault 即可获得比充值时更多的 USDC;7. 随后攻击者开始重复此过程持续获利。慢雾区总结称,此次攻击主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在铸币时采用的是 Curve y 池中的报价 (即使用 Curve 作为喂价来源),导致攻击者可以通过巨额兑换操控预言机的价格来控制 Harvest Finance 中 fToken 的铸币数量,从而使攻击者有利可图。