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創始人AC或將Loot融入類Loot游戲Rarity,以進行致敬:金色財經消息,Yearn.finance創始人Andre Cronje發推表示,作為致敬,思考許多如何將Loot融入Rarity:
1. 將Loot NFT分解成Rarity組件,讓它們代替稀有試劑;
2. 讓Loot NFT成為反派(villains),畢竟他們是固定的、不變的、預先準備好的。[2021/9/12 23:19:37]
攻擊者調用了yUSDT的deposit函數,抵押了?900,?000USDT,并獲得了?820,?000yUSDT:
接下來,攻擊者調用了?bZxiUSDC?的mint函數,使用?156,?000USDC?鑄造了?152,?000bZxiUSDC,并將其轉移到了YearnyUSDT:
Yearn Finance自推出以來累計收入超3900萬美元:9月8日消息,自推出以來,Yearn Finance已累計賺取了超3900萬美元的收入(不包括儲戶賺取的利息)。過去30日,該協議共賺取超500萬美元的收入,Yearn Finance預計本年收入將達3000萬美元。[2021/9/8 23:09:36]
攻擊者調用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.finance總鎖倉量突破40億美元:yearn.finance發布推特表示,總鎖倉量(TVL)突破40億美元。據悉,Yearn Finance的總鎖倉量從10億美元到20億美元,花了226天。但從20億美元到40億美元只花了32天。[2021/5/8 21:37:52]
然后在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和?562?w?萬個USDC,并歸還閃電貸:
yearn.finance:治理每周可調整curve.fi池的獎勵,優先級和權重經討論決定:yearn.finance官方發推稱,dao.curve.fi/gaugeweight允許治理每周調整curve.fi池的獎勵,可討論哪些池應該優先和給予的具體權重。一旦決定,這些調整將保持默認狀態,直到另一項提案做出新的調整。[2020/8/27]
漏洞分析
這次攻擊中最關鍵的一點,是攻擊者使用?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
以太坊在今晨一度沖高近2141.5美元后,隨后又快速下跌,力守2000美元大關。同時鏈上數據顯示有巨鯨移除了4,800萬美元的ETH/stETH流動性后,將11,450枚ETH轉入幣安.
1900/1/1 0:00:00ForesightNews消息,Web3任務平臺SoQuest已在AppStore和GooglePlay上線其移動端App.
1900/1/1 0:00:00Shapella更新觸發了價值數百萬美元的數千ETH的提取。-盡管擔心市場影響,但以太坊投資者仍然保持樂觀,因為價格超出預期并保持在2,000美元以上.
1900/1/1 0:00:00STRK(StarkNet)項目解析 1.?研究院點評 Arbitrum的空投帶來了造富效應,引發了Layer2交互熱潮,Layer2四大天王項目剩下的zkSync和StarkNet.
1900/1/1 0:00:00DearKuCoinUsers,KuCoinispleasedtoannouncethatUSDCtradingpairshavebeenaddedtoKuCoinConvert!Newtrad.
1900/1/1 0:00:00參與Gate.io超級七天樂,好禮享不停。完成任務即可獲得抽獎機會,瓜分$55,000重磅豪禮.
1900/1/1 0:00:00