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?:
Aave:Yearn Finance被盗事件对Aave v2、v3没有影响:4月13日消息,Aave 在其社交平台表示,Yearn Finance 被盗事件对 Aave v2、v3 没有影响。而对于 Aave v1 的影响正在确认,该协议的最原始版本已被冻结。Aave 正在密切监视情况,以确保没有进一步的问题。
此前有社区反馈,此次 Yearn Finance 被盗事件是黑客通过 Aave v1 发起闪电贷攻击引发,派盾表示该事件的根本原因或是 yUSDT 的相关设置错误被黑客攻击。[2023/4/13 14:01:30]
攻击者调用了yUSDT的deposit函数,抵押了?900,?000USDT,并获得了?820,?000yUSDT:
接下来,攻击者调用了?bZxiUSDC?的mint函数,使用?156,?000USDC?铸造了?152,?000bZxiUSDC,并将其转移到了YearnyUSDT:
Yearn.finance社区发起关于增发1000枚YFI用于奖励开发人员的提案:据Yearn.finance官方治理网站,Yearn.finance社区发起提案,计划增发1000枚YFI用于奖励开发人员。目前,在225名投票参与者中,有66%的人反对此提案。据悉,YFI的发行总量恒定为3万枚。此前也有几次增发YFI的提案,均未通过。[2021/1/15 16:12:53]
攻击者调用Yearn:yUSDT?的withdraw函数,将?820,?000yUSDT兑换成?1,?030,?000USDT。此时,合约中只剩下攻击者转移的bZxiUSDC:
接下来攻击者调用Yearn:yUSDT的rebalance函数,销毁bZxiUSDC:
然后攻击者向yUSDT合约转移了1/e?6个USDT,并调用了deposit函数,抵押了?10,?000USDT,获得了?1,?252,?660,?242,?850,?000yUSDT:
Yearn Partner周报:SushiSwap交易量11月增加11亿美元:据官方消息,根据Yearn Partner的最新周报:
1.SushiSwap交易量在11月增加了11亿美元。同期DEX总交易量在各交易所下降15.8%,受Uniswap和Curve影响最大,但SushiSwap交易量继续上升。
2.关于将YFI增加到SushiSwap treasury中的投票通过,分配如下:60%的SUSHI,20%的USDC+DAI,10% ETH,5%的YFI,5%的BTC(tBTC-renBTC-wBTC)。
3.引入Onsen。Onsen是SushiSwap新的流动性挖矿激励计划,取代了Menu of the Week计划,旨在带来长期的积极流动性变化,并确保平台的稳定性。
4.关于增加新的开发人员到核心团队的提案:开发BentoBox的Clearwood已经提出了一项提案,概述了他全职开发SushiSwap的意图。[2020/12/12 14:59:40]
然后在Curve上,攻击者将?70,?000yUSDT兑换成?5,?990,?000yDAI,将?4?亿yUSDT兑换成?4,?490,?000yUSDC,将?1,?240,?133,?244,?352,?200yUSDT?兑换成?1,?360,?000yTUSD:
Yearn.Finance:yVaults未受到Pickle Finance被盗用事件的影响:Yearn.Finance官方刚刚发布推文称,Yearn没有任何资金存入Pickle Finance产品,yVaults也没有受到最近Pickle Finance被盗用事件的影响。[2020/11/22 21:38:26]
然后在yearn:yDAI和yearn:yUSDC中分别调用withdraw,提取678?万个DAI和?562?w?万个USDC,并归还闪电贷:
漏洞分析
这次攻击中最关键的一点,是攻击者使用?100,?000USDT铸造了1,?252,?660,?242,?850,?000个yUSDT。查看deposit函数的实现:
可以看到share的数量和变量pool相关,pool越小,share越大,而pool的值由_calcPoolValueInToken获得:
攻击者在调用rebalance函数后,合约中只存在了USDC,但是_balance()获取的是USDT的余额,USDC的余额并不计入其中,因此此时的pool为1?:
这里显然是项目方的配置错误,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
在Shapella硬分叉的前四天内,价值21亿美元的超过100万个以太币(ETH)已从以太坊的Beacon链中撤出。Kraken质押服务的关闭可能导致了更高的数字.
1900/1/1 0:00:004月17日消息,以太坊大会EDCON将于2023年5月19日至23日在黑山共和国首都波德戈里察举办.
1900/1/1 0:00:00ETH继续向上冲高,在2000属于原有的一个价格回归,破2000就是价格的一个释放期,根据前面已有成形的趋势和大的格局,行情总体会控制在23000区间以内.
1900/1/1 0:00:00比特币在本周开始面临关键的BTC价格支撑之战,而市场参与者对趋势延续持乐观态度。比特币(BTC)以低于30,000美元的价格开始新的一周,因为分析师对短期支撑重新测试的预测成真.
1900/1/1 0:00:00根据CoinShares最近的一份报告,上周数字资产投资产品的资金流入大幅上涨,总计流入1.14亿美元。这标志着连续第四周流入,使总流入量达到3.45亿美元.
1900/1/1 0:00:00ConfluxNetworkConfluxNetwork是由清华大学和多伦多大学的研究人员团队于2018年创立的高性能区块链项目.
1900/1/1 0:00:00