据慢雾区情报,2023 年 4 月 13 日,去中心化收益聚合平台 Yearn Finance 遭到攻击,攻击者获利超千万美金。慢雾安全团队以简讯的形式分享如下:
相关信息
Yearn 的 yUSDT 合约设计存在 aUSDT、dydx 头寸、iUSDC 与 cUSDT 储备,用户在 deposit/withdraw 时会根据上述储备余额计算用户所能获得的份额/所需存款的数额。
攻击核心点
此次攻击的原因在于攻击者利用 yUSDT 合约被错误设置了 fulcrum 地址,从而操控 yUSDT 合约中的稳定币储备余额,通过在 yUSDT 中存入 USDT,以获得大量的非预期的 yUSDT 代币进行获利。
Yearn Finance现在将允许任何人创建Curve奖励Farms:金色财经报道,Yearn Finance将允许用户创建自己的金库来累积收益和存款收益,从而获得更多代币奖励。Yearn将收取10%作为提供此类设施的绩效费用。从周二开始,用户最初只能为Curve Finance的流动性代币创建金库。[2023/1/10 11:04:50]
具体细节分析
1、攻击者首先通过闪电贷借出大量的 DAI、USDC 和 USDT,接着通过 Curve 的 ySwap 将 DAI 和 USDC 换成 USDT,以消耗 yUSDT 合约中的 aUSDT 储备。
Enzyme Finance宣布与Yearn Vaults集成:据官方消息,7月5日,去中心化资产管理协议Enzyme Finance发推宣布与Yearn Vaults集成。目前,Yearn Vaults已可在Enzyme Finance上使用。通过此次合作,Yearn Vaults将为Enzyme App内的投资组合经理提供了新的机会,以开辟专门为他们的需求设计的收益耕种策略。[2021/7/6 0:29:15]
2、接着攻击者为 Aave Pool v1 上存在负债的用户还款,目的是增加 Aave Pool v1 中的 USDT 数额,以便 yUSDT 中的 aUSDT 能够顺利被赎回。
Yearn将发起提案以暂时延长多重签名的授权时间:Yearn.Finance官方刚刚发推称,即将在治理论坛上讨论新的潜在YIP,以暂时将Multisig(多重签名)的授权延长3个月。据悉,现有的授权将于2月24日到期。[2021/2/16 19:51:37]
3、紧跟着调用 yUSDT 合约的 deposit 函数进行 USDT 存款,得到相对应的 yUSDT 代币。为后续通过 withdraw 清空 yUSDT 中 aUSDT 储备做准备。
4、为了确保 withdraw 时能够清空 yUSDT 中 aUSDT 储备,攻击者调用 iUSDC 合约的 mint 函数铸造 iUSDC 后,将 iUSDC 直接转给 yUSDT 合约,为 yUSDT 合约增加储备深度。
Yearn.finance:与EMN事件相关的800万DAI将分发至受影响地址:金色财经报道,Yearn.finance官方发推文称,与EMN事件相关的800万DAI已发送到Yearn多签名地址。这笔款项将根据在区块10954410处拍摄的快照分发到受影响的地址。据此前消息,yearn.finance创始人Andre Cronje新推出的ENM项目遭遇Flash贷款攻击,其中800万美元转入了Andre的yearn开发者账号。[2020/10/1]
5、随后攻击者调用 yUSDT 合约的 withdraw 函数进行取款,由于此时 provider 指定为 AAVE,因此 yUSDT 会通过 Aave Pool v1 赎回 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 合约中转入 1 wei 的 USDT。
11、最后,攻击者调用 yUSDT 的存款函数,存入 10,000 枚 USDT,获得 1,252,660,242,850,000 枚 yUSDT,并通过 curve 将 yUSDT 换成大量的 yDAI、yUSDC、yTUSD。
总结
本次攻击事件是由于 Yearn Finance 的 yUSDT 合约错误的配置导致的。慢雾安全团队建议在对协议进行配置时,应仔细检查所有参数是否符合预期并进行充分的测试以确保协议的安全。
慢雾科技
个人专栏
阅读更多
金色财经 善欧巴
Chainlink预言机
金色早8点
白话区块链
Odaily星球日报
Arcane Labs
深潮TechFlow
欧科云链
BTCStudy
MarsBit
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。