比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > ETH > Info

Yearn Finance攻擊事件分析-ODAILY_SDT

Author:

Time: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:

Yearn回購8.15個YFI,總價值約40.8萬美元:5月17日消息,DeFi項目yearn.finance(YFI)發推稱以40.8萬美元回購了額外的8.15個YFI,每個YFI的平均價格為50121美元。

注:回購YFI是根據一項名為“YIP-56”的提案來進行的,該提案旨在使用YFI的Staking獎勵在公開市場上回購YFI,從而為生態系統帶來更多價值。[2021/5/17 22:09:36]

接下來,攻擊者將800,000USDT轉移到了攻擊合約0x9fcc1409b56cf235d9cdbbb86b6ad5089fa0eb0f中。在該合約中,攻擊者多次調用了Aave:LendingPoolV1的repay函數,幫助其他人償還債務,以使Aave的APR等于0:

攻擊者調用了yUSDT的deposit函數,抵押了900,000USDT,并獲得了820,000yUSDT:

接下來,攻擊者調用了bZxiUSDC的mint函數,使用156,000USDC鑄造了152,000bZxiUSDC,并將其轉移到了YearnyUSDT:

Yearn將通過Gnosis拍賣回購30萬USDC的YFI:yearn.finance宣布將進行一場Gnosis拍賣,從市場上回購額外的YFI。yearn.finance將以4.5萬美元/枚以下的價格回購價值30萬USDC的YFI。[2021/4/15 20:21:33]

攻擊者調用Yearn:yUSDT的withdraw函數,將820,000yUSDT兌換成1,030,000USDT。此時,合約中只剩下攻擊者轉移的bZxiUSDC:

接下來攻擊者調用Yearn:yUSDT的rebalance函數,銷毀bZxiUSDC:

然后攻擊者向yUSDT合約轉移了1/e6個USDT,并調用了deposit函數,抵押了10,000USDT,獲得了1,252,660,242,850,000yUSDT:

Yearn.Finance將其SUSHI最大分配額轉到yveCRVETH LP池:官方消息,Yearn.Finance將其SUSHI最大分配額轉到yveCRVETH LP池。[2021/2/6 19:02:50]

然后在Curve上,攻擊者將70,000yUSDT兌換成5,990,000yDAI,將4億yUSDT兌換成4,490,000yUSDC,將1,240,133,244,352,200yUSDT兌換成1,360,000yTUSD:

然后在yearn:yDAI和yearn:yUSDC中分別調用withdraw,提取678萬個DAI和562w萬個USDC,并歸還閃電貸:

漏洞分析

這次攻擊中最關鍵的一點,是攻擊者使用100,000USDT鑄造了1,252,660,242,850,000個yUSDT。查看deposit函數的實現:

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]

可以看到share的數量和變量pool相關,pool越小,share越大,而pool的值由_calcPoolValueInToken獲得:

攻擊者在調用rebalance函數后,合約中只存在了USDC,但是_balance()獲取的是USDT的余額,USDC的余額并不計入其中,因此此時的pool為1:

Yearn.Finance已開始申請3CRV獎勵:12月9日,Yearn.Finance核心開發者banteg發推稱,Yearn.Finance已開始申請3CRV獎勵,這些獎勵將被發送至yveCRV金庫。3CRV獎勵為Curve Finance自9月中旬以來累積的交易費用,大約有300萬美元的3CRV (3Pool的LP代幣),Curve Finance表示用戶現在可申領。[2020/12/9 14:42:22]

這里顯然是項目方的配置錯誤,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

Tags:USDUSDTSDTNCEWCUSD價格usdt泰達幣怎么賺錢的trustwallet如何添加usdtGravis Finance

ETH
賽道的MAGIC?一文了解Arbitrum上的新項目Just Bet Official-ODAILY_UST

本文來自CapitalismLab的推文,介紹了Arbitrum上的新項目JustBetOfficial以及對于賽道的看法.

1900/1/1 0:00:00
ETHDenver 2023盛會中的重點趨勢一覽-ODAILY_WEB3

在2月24日至3月5日舉辦的ETHDenver創新節是全球最大、持續時間最長的以太坊活動之一。本次活動將面向以太坊和其他區塊鏈協議愛好者、設計者和開發人員.

1900/1/1 0:00:00
3D打印也玩區塊鏈?分布式數字化制造風暴可能就要到來_PAR

突破“幫會”的3D打印 據coindesk報道,麻省理工學院數字貨幣計劃區塊鏈研究的高級顧問MichaelJ.Casey認為.

1900/1/1 0:00:00
波場TRON與Oraichain達成合作伙伴關系-ODAILY_RON

據官方消息,波場TRON現已與Oraichain達成合作,這一合作伙伴關系標志著區塊鏈技術發展達成一個重要里程碑.

1900/1/1 0:00:00
SignalPlus每日晨報(20230302)-ODAILY_IGN

各位朋友,歡迎來到SignalPlus每日晨報。SignalPlus晨報每天為各位更新宏觀市場信息,并分享我們對宏觀趨勢的觀察和看法。歡迎追蹤訂閱,與我們一起關注最新的市場動態.

1900/1/1 0:00:00
ChatGPT熱潮下AIGC如何與Web3強強聯合-ODAILY_CHA

開年不久,一款名為ChatGPT的聊天機器人火爆全網,上線僅用2個月就累計了超過1億的活躍用戶,成為史上用戶增長最快的消費者應用程序.

1900/1/1 0:00:00
ads