宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > LTC > 正文

Yearn Finance攻击事件分析-ODAILY

作者:

时间:1900/1/1 0:00:00

概述

2023年4月13日,YearnFinance遭到黑客攻击,导致大约损失1000万美元。本文将分析攻击过程以及漏洞产生的原因。

攻击分析

这是一笔攻击交易:

https://etherscan.io/tx/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d

攻击者从Balancer发起了闪电贷,借了500万DAI、500万USDC和200万USDT:

然后在Curve上,攻击者将500万DAI兑换成了695,000USDT,并将350万USDC兑换成151USDT:

攻击者调用IEarnAPRWithPool的recommend函数来检查当前的APR。此时,只有Aave的APR不等于0:

接下来,攻击者将800,000USDT转移到了攻击合约0x9fcc1409b56cf235d9cdbbb86b6ad5089fa0eb0f中。在该合约中,攻击者多次调用了Aave:LendingPoolV1的repay函数,帮助其他人偿还债务,以使Aave的APR等于0:

yearn.finance正在为Yearn V3开发实施ERC-4626标准:4月6日消息,官方消息,yearn.finance正在为Yearn V3开发实施代币化资金库标准(Tokenized Vault Standard,ERC-4626)。yearn表示,基于ERC-4626资金库构建一个应用程序,将适用于所有其他ERC-4626代币。ERC-4626是适用于任何类型的计息代币的标准。[2022/4/6 14:07:07]

攻击者调用了yUSDT的deposit函数,抵押了900,000USDT,并获得了820,000yUSDT:

接下来,攻击者调用了bZxiUSDC的mint函数,使用156,000USDC铸造了152,000bZxiUSDC,并将其转移到了YearnyUSDT:

攻击者调用Yearn:yUSDT的withdraw函数,将820,000yUSDT兑换成1,030,000USDT。此时,合约中只剩下攻击者转移的bZxiUSDC:

Yearn Finance自推出以来累计收入超3900万美元:9月8日消息,自推出以来,Yearn Finance已累计赚取了超3900万美元的收入(不包括储户赚取的利息)。过去30日,该协议共赚取超500万美元的收入,Yearn Finance预计本年收入将达3000万美元。[2021/9/8 23:09:36]

接下来攻击者调用Yearn:yUSDT的rebalance函数,销毁bZxiUSDC:

然后攻击者向yUSDT合约转移了1/e6个USDT,并调用了deposit函数,抵押了10,000USDT,获得了1,252,660,242,850,000yUSDT:

然后在Curve上,攻击者将70,000yUSDT兑换成5,990,000yDAI,将4亿yUSDT兑换成4,490,000yUSDC,将1,240,133,244,352,200yUSDT兑换成1,360,000yTUSD:

波卡生态项目StaFi:Yearn Vault已集成crvRETH:波卡生态项目StaFi发推称,StaFi rToken完成新集成,yearn.finance已经开启针对crvRETH的vault。crvRETH是Curve Finance上的rETH/ETH池的存款凭证代币。用户可将crvRETH存入yearn.finance的Vaults,APY达15%。[2021/5/31 22:59:27]

然后在yearn:yDAI和yearn:yUSDC中分别调用withdraw,提取678万个DAI和562w万个USDC,并归还闪电贷:

漏洞分析

这次攻击中最关键的一点,是攻击者使用100,000USDT铸造了1,252,660,242,850,000个yUSDT。查看deposit函数的实现:

可以看到share的数量和变量pool相关,pool越小,share越大,而pool的值由_calcPoolValueInToken获得:

Yearn finance团队发起铸造6666枚YFI代币的提案:1月21日消息,Yearn finance主要贡献者和社区成员组成的11人团队今日提交了一项提案,建议将YFI的供应量增加6666枚,按目前的价格计算,其价值约为2.25亿美元。其中约1/3铸造的YFI将分配给关键贡献者,剩余的2/3将分配给财政部,这些资金将通过现有的治理方式用于各种用途。(Cointelegraph)[2021/1/21 16:39:47]

攻击者在调用rebalance函数后,合约中只存在了USDC,但是_balance()获取的是USDT的余额,USDC的余额并不计入其中,因此此时的pool为1:

yearn.finance为DAI和USDC金库推出许可存款功能:12月8日,yearn.finance官方发文公布项目进展。内容显示,Yearn.Finance核心开发者banteg宣布推出许可存款功能(permit-deposit)。该功能可供DAI和USDC的金库使用,用户可在单笔交易中使用签名许可将资金存入DAI和USDC金库,可实现零交易费用。[2020/12/8 14:37:04]

这里显然是项目方的配置错误,yUSDT合约中应当都是USDT类的代币,但是其fulcrum变量却是USDC相关的bZxIUSDC代币,因此yUSDT中的USDC不计入balance中:

攻击者为什么能调用rebalance函数来burn掉bZxiUSDC代币呢?查看rebalance函数的实现:

可以看到在_withdrawFulcrum()中会存在redeem和burn操作,因此我们需要让"newProvider!=provider"成立,其中recommend()的实现:

攻击者通过控制IIEarnManager(apr).recommend(token)的返回值,使其为都为0来操控newProvider:

如何让其都为0呢,该函数的返回值和计算出的各个DeFi中的APR相关,由于Compound,bZx,dydx中没有池子,因此只需要控制Aave(Aave:LendingPoolCoreV1)即可:

要使其值返回为0,需要让apr.calculateInterestRates函数的第一个返回值为0:

即让currentLiquidityRate为0,该值和_totalBorrowsStable、_totalBorrowsVariable相关,当这两个个值都为0时,currentLiquidityRate为0:

_totalBorrowsVariable为0,即Aave:LendingPoolCoreV1此时没有人存在债务,为了达成这个条件,攻击者将池中所有人的债务进行了repay:

最后,攻击者让_totalBorrowsVariable变为0,所以它能够调用rebalance函数burn掉bZxiUSDC代币:

总结

此次Yearn攻击事件的根本原因是项目方的配置错误。攻击者通过一系列精妙的手法利用了该漏洞,最终获利大约1000万美元。

关于我们

AtEoceneResearch,weprovidetheinsightsofintentionsandsecuritybehindeverythingyouknowordon'tknowofblockchain,andempowereveryindividualandorganizationtoanswercomplexquestionswehadn'tevendreamedofbackthen.

了解更多:Website|Medium|Twitter

标签:USDUSDTEARNSDTUSDXusdt币交易违法吗3日冻结会解除么HEARN价格wstUSDT价格

LTC热门资讯
盘点基于GLP的4个基金项目:GMD、Rage、Jones、Mugen-ODAILY

1/基于GLP做的几个基金项目也都粗看了一遍,先浅评一下,以后有空再写深度:$GMD最好的模式给了这土狗风团队/img/20230514202610333684/0.jpg "/>动态 | 封面盘点2019十大酷科技 区块链上榜:1月.

1900/1/1 0:00:00
失去“希望”的团队:贴出了子照片和身份证-ODAILY

2023年2月21日,CertiK发现了2023年迄今为止Arbitrum上最大的退出局。一个最近推出的名为HopeFinance的项目,号称在局中损失了180万美元。然而经过调查后发现,这场局竟与该项目团队自身的相关钱包有关.

1900/1/1 0:00:00
Web3加密浏览器Brave有什么特别之处?-ODAILY

使用浏览器来上网访问和获取各种信息和资源已经成为传统互联网民的普遍活动,下一代互联网协议Web3的核心特点是去中心化,即不依赖于中心化的服务器和数据中心,而是通过分布式的网络节点来实现数据存储和传输.

1900/1/1 0:00:00
Shapella升级抛压已过,ETH本周能突破2000美元吗?

自4月13日以太坊完成Shapella升级,在过去近一个月的时间里,ETH价格经历了冲高后回调,宽幅整荡,目前价格相较于升级日仅仅下跌4%,远远小于同期比特币跌幅7.6%.

1900/1/1 0:00:00
Qredo通过SOC2 II类机构托管最高合规标准-ODAILY

2023年1月10日—Qredo很高兴地宣布,它最近通过了服务组织的系统和组织控制(SOC)2II类审核.

1900/1/1 0:00:00
去中心化超抵押稳定币USDD正式登陆TaskOn-ODAILY

据官方消息,去中心化超抵押稳定币USDD现已正式登陆Web3任务平台TaskOn。用户可在TaskOn平台创建Web3活动,参与各种任务,领取USDD奖励.

1900/1/1 0:00:00