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

Yearn Finance攻擊事件分析_USDT

Author:

Time:1900/1/1 0:00:00

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創始人Andre Cronje或已開通新推特賬號:3月3日消息,Yearn Finance和Fantom的創始人Andre Cronje似乎已開通了一個新推特賬號@AndreCronje123,并發推文稱其主賬戶@AndreCronjeTech莫名被推特封殺,這是他的第二個賬戶。此外,Andre Cronje稱SOLID資金是安全的。據悉,Solidly是Andre Krone開發的的基于Phantom的DEX項目。此前2月28日消息,Andre Cronje的推特賬號@AndreCronjeTech無法顯示,或已注銷其推特賬號。[2022/3/3 13:35:06]

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

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

Ruler Protocol:賠償金已送至Yearn Deployer,將由yearn.finance代為支付:9月8日消息,去中心化借貸平臺Ruler Protocol和DeFi保險協議Cover Protocol同時發推表示,由于Ruler Protocol和Cover Protocol沒有開發人員來支付賠償金,所以其資金已送至Yearn Deployer,后續將由yearn.finance代為支付用戶的賠償金,在賠償結束后,其用戶界面將延續到10月并永久關閉。[2021/9/8 23:09:59]

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

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

Cover開啟投票是否對Yearn漏洞提供保險:2月5日,Cover社區決定yearn漏洞是否有效的Snapchat投票已經上線,用戶可以使用COVER和COVER-ETH UNI-LP代幣參與投票。投票將持續3天。此前消息,yearn v1 yDAI vault今日遭受攻擊,損失了1100萬美元。[2021/2/5 18:57:57]

然后攻擊者向yUSDT合約轉移了1/e?6個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:

SushiSwap開啟投票表決Yearn和Sushi合作相關的兩項提案:12月2日,SushiChef官方宣布,社區已開啟最新兩項提案投票。兩項提案分別為:1.添加和參與Yearn財政建設,具體代幣分配比例為60% SUSHI、20% USDC + DAI、10% ETH、5% YFI,以及5% BTC (tBTC-renBTC-wBTC)。2.針對Yearn和Sushi合作設定永久菜單(menu)。具體而言,Keep3r/ETH池將被添加到永久菜單,類似于REN/ETH 、CRV/ETH,只要是金庫中的幣種均可選擇進行配對。若提案通過將通知核心開發者,并由Sushiswap團隊實施。該提案適用于48小時的時間鎖。[2020/12/2 22:53:01]

然后在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

Tags:USDUSDTSDTEARNdigitalusdusdt幣圈最新消息AUSDTAI Earn

USDT
KuCoin Convert Adds USDC Trading Pairs_OIN

DearKuCoinUsers,KuCoinispleasedtoannouncethatUSDCtradingpairshavebeenaddedtoKuCoinConvert!Newtrad.

1900/1/1 0:00:00
電影 Shadow Song 將在 Muverse 平臺上發布原聲音樂 NFT_INM

ForesightNews消息,在Muverse與SyndicateCapital聯合舉辦的WebIntoEntertainment活動現場.

1900/1/1 0:00:00
Withdrawal Service of BEP20 Injective Protocol (INJ) is Permanently Closed_TER

DearKuCoinUsers,ThewithdrawalserviceforBEP20INJtokenhasbeenpermanentlyclosed.KuCoinnowonlysupport.

1900/1/1 0:00:00
以太坊跌破2100 美元!巨鯨將11450 枚ETH 轉幣安_ECOC

以太坊在今晨一度沖高近2141.5美元后,隨后又快速下跌,力守2000美元大關。同時鏈上數據顯示有巨鯨移除了4,800萬美元的ETH/stETH流動性后,將11,450枚ETH轉入幣安.

1900/1/1 0:00:00
Uni鯨魚標志著預期反彈的雙向飆升,但UNI走在不同的道路上_USD

持有100萬至1000萬個UNI的Uniswap大錢包持有者一直在增持,而較小的鯨魚則在拋售。最大的問題之一是網絡上缺乏投資者,因為每日活躍地址保持在1,000到2,000以下或左右.

1900/1/1 0:00:00
后上海升級時代,Lido 能否繼續稱霸以太坊質押賽道?_LID

本文討論了以太坊質押市場的現狀,因為以太坊已經轉向權益證明(PoS)并且完成上海升級。文章深入探討兩個問題:第一,質押是否會成為贏家通吃的市場;其次,預期的總質押ETH是多少.

1900/1/1 0:00:00
ads