据慢雾区情报,2023年4月13日,去中心化收益聚合平台YearnFinance遭到攻击,攻击者获利超千万美金。慢雾安全团队以简讯的形式分享如下:
相关信息
Yearn的yUSDT合约设计存在aUSDT、dydx头寸、iUSDC与cUSDT储备,用户在deposit/withdraw时会根据上述储备余额计算用户所能获得的份额/所需存款的数额。
攻击核心点
此次攻击的原因在于攻击者利用yUSDT合约被错误设置了fulcrum地址,从而操控yUSDT合约中的稳定币储备余额,通过在yUSDT中存入USDT,以获得大量的非预期的yUSDT代币进行获利。
Wintermute拟向Yearn Finance社区申请YFI贷款并计划购买最多300万枚yCRV:8月14日消息,Yearn Finance治理页面显示,Wintermute提交YFI Wintermute贷款及CRV计划提案,该提案请求批准向Wintermute Trading提供YFI贷款,并授权将350枚YFI(218万美元)从DAO财库转移到Wintermute Trading,为期12个月,利率为0.1%,贷款期结束时以实物支付。此外,Wintermute计划动用最多300万枚CRV(173万美元)购买yCRV,并将其资产添加于部署到Yearn上的yCRV-CRV Curve池(lp-yCRVV2)中,为期至少6个月。Wintermute希望此举再平衡目前占69%/31%yCRV/CRV资金池,改善yCRV挂钩,增加资金池流动性。
该提案称,在7天的社区讨论与反馈后,将启动快照投票。[2023/8/14 16:25:08]
yearn.finance新提案YIP-59现已开始生效:2月25日消息,yearn.finance官方发推表示,新提案YIP-59临时扩展Multi-sig授权已获得一致支持,现已生效,多签授权现可以再使用三个月,直到5月底结束。[2021/2/25 17:51:48]
具体细节分析
1、攻击者首先通过闪电贷借出大量的DAI、USDC和USDT,接着通过Curve的ySwap将DAI和USDC换成USDT,以消耗yUSDT合约中的aUSDT储备。
2、接着攻击者为AavePoolv1上存在负债的用户还款,目的是增加AavePoolv1中的USDT数额,以便yUSDT中的aUSDT能够顺利被赎回。
Yearn Finance锁仓量已缩水6.24亿美元:YFI价格从最高点已经下跌超65%,而Yearn Finance锁仓量已经较最高点缩水6.24亿美元,降幅超过60%。有分析人士指出,Yearn Finance出现的锁仓量骤减和Eminence的负面消息有关,Andre Cronje一时间遭到质疑。(Bitcoin News)[2020/10/8]
3、紧跟着调用yUSDT合约的deposit函数进行USDT存款,得到相对应的yUSDT代币。为后续通过withdraw清空yUSDT中aUSDT储备做准备。
yearn.finance(YFI)已上传所有历史审计报告:yearn.finance(YFI)发推称,现已上传所有历史审计报告,感谢以下提供帮助的机构或人士:Quantstamp、Certik、CryptoManiacsZone、Martinet Lee、orbxball以及samczsun。[2020/8/19]
4、为了确保withdraw时能够清空yUSDT中aUSDT储备,攻击者调用iUSDC合约的mint函数铸造iUSDC后,将iUSDC直接转给yUSDT合约,为yUSDT合约增加储备深度。
5、随后攻击者调用yUSDT合约的withdraw函数进行取款,由于此时provider指定为AAVE,因此yUSDT会通过AavePoolv1赎回USDT给提款人。
6、由于攻击者在之前通过iUSDC增加了合约中的储备,因此在此次提现中可以将yUSDT里的aUSDT储备全部清空。
7、此时yUSDT合约中的aUSDT、dydx头寸与cUSDT储备都被操控为0了。最后,为清空iUSDC储备,攻击者调用yUSDT合约的rebalance函数,进行储备更新。
8、由于此时yUSDT中只剩余iUSDC,因此合约的新provider将会被指向iUSDC,导致Rebalance函数会先进行_withdrawAll操作,再通过余额获取的方式更新储备。
9、而在_withdrawAll操作中会燃烧掉iUSDC以获得USDC代币,但在更新储备时获取的是yUSDT合约中USDT的余额。因此fulcrum储备被错误的指向了iUSDC,导致此时yUSDT合约储备被操控为0。
10、攻击者为确保能通过存款获得大量的yUSDT,向yUSDT合约中转入1wei的USDT。
11、最后,攻击者调用yUSDT的存款函数,存入10,000枚USDT,获得1,252,660,242,850,000枚yUSDT,并通过curve将yUSDT换成大量的yDAI、yUSDC、yTUSD。
总结
本次攻击事件是由于YearnFinance的yUSDT合约错误的配置导致的。慢雾安全团队建议在对协议进行配置时,应仔细检查所有参数是否符合预期并进行充分的测试以确保协议的安全。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。