Yearn Finance 被黑简析

据慢雾区情报,2023年4月13日,去中心化收益聚合平台YearnFinance遭到攻击,攻击者获利超千万美金。慢雾安全团队以简讯的形式分享如下:

相关信息

Yearn的yUSDT合约设计存在aUSDT、dydx头寸、iUSDC与cUSDT储备,用户在deposit/withdraw时会根据上述储备余额计算用户所能获得的份额/所需存款的数额。

攻击核心点

此次攻击的原因在于攻击者利用yUSDT合约被错误设置了fulcrum地址,从而操控yUSDT合约中的稳定币储备余额,通过在yUSDT中存入USDT,以获得大量的非预期的yUSDT代币进行获利。

Maker DAO批准在DeFi协议Yearn Finance上部署1亿美元的USDC:金色财经报道,去中心化金融(DeFi)巨头Maker DAO的社区周一批准了一项提议,从其在DeFi协议Yearn Finance上的储备中部署高达1亿美元的稳定币(USDC),存放的稳定币将在其中获得收益。(Coindesk)[2023/1/24 11:27:53]

具体细节分析

1、攻击者首先通过闪电贷借出大量的DAI、USDC和USDT,接着通过Curve的ySwap将DAI和USDC换成USDT,以消耗yUSDT合约中的aUSDT储备。

2、接着攻击者为AavePoolv1上存在负债的用户还款,目的是增加AavePoolv1中的USDT数额,以便yUSDT中的aUSDT能够顺利被赎回。

Yearn披露一个杠杆式COMP挖矿策略中的漏洞,目前已修复:7月1日消息,收益聚合器yearn.finance(YFI)的核心开发者banteg披露了一个可能导致用户资金重大损失的漏洞,并表示该漏洞目前已修复,没有造成资金损失。该漏洞由安全研究员xyzaudits发现并按照漏洞披露流程联系了Yearn的安全团队,Yearn团队优先从可能受影响的合约中移除资金,然后验证漏洞并创建修复程序,从而阻止第三方启动闪贷,消除了使用虚假数字的机会。Yearn安全团队决定给xyzaudits颁发20万美元的漏洞赏金。Yearn表示,该漏洞是Yearn的yvDAI机池附加了两个可能受影响的GenLevComp杠杆策略,如果被成功利用,攻击者将能够清算受影响策略在Compound上的全部债务头寸,并有可能获得清算费用。[2021/7/1 0:20:27]

ParaFi Capital在Yearn.finance社区论坛发布费用优化提案:ParaFi Capital在Yearn.finance社区论坛发布优化费用的提案,具体来说,除了闲置资金,建议对所有提款收取0.5%的费用或考虑转为按时间加权的管理费,并将耕作费用重命名为绩效费,收取至少5%的费用,并可以根据策略的复杂性选择增加/减少。该提案阐明了收费机制,仅提取费一项就可将Yearn.finance的潜在收益提高了5倍以上。[2020/10/19]

3、紧跟着调用yUSDT合约的deposit函数进行USDT存款,得到相对应的yUSDT代币。为后续通过withdraw清空yUSDT中aUSDT储备做准备。

4、为了确保withdraw时能够清空yUSDT中aUSDT储备,攻击者调用iUSDC合约的mint函数铸造iUSDC后,将iUSDC直接转给yUSDT合约,为yUSDT合约增加储备深度。

yearn.finance公布YFI新增vault:yearn.finance在推特上公布YFI新增vault,包括DAI、TUSD、USDC以及USDT。免责声明包括:0.5%提款费;不要拿你的资金冒险。此外,在区块高度10695309初始化的yVault将在接下来的24小时内提供APR指标。[2020/8/20]

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合约错误的配置导致的。慢雾安全团队建议在对协议进行配置时,应仔细检查所有参数是否符合预期并进行充分的测试以确保协议的安全。

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

银河链

TRX深度思考加密媒体:机遇、挑战和创新

区块链技术为Web3中的媒体行业提供了巨大的机遇。去中心化、不可变性和安全性是区块链技术的主要优势,可以解决媒体行业长期存在的问题,例如信息误导、缺乏透明度和审查制度.

[0:15ms0-2:360ms