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:所有受到 Euler 攻擊影響的被盜資金均已收回并歸還給用戶:金色財經報道,收益聚合協議 Yearn 發推稱,所有受到 3 月 Euler 黑客攻擊影響的資金均已收回并歸還給用戶,受影響的金庫是 yvUSDC 與 yvUSDT, Idle Finance v4(最佳收益)與 Angle Standard LP 存在間接暴露風險
此前報道,3 月 14 日,Yearn 發推表示,雖然沒有直接暴露于 Euler 被攻擊事件,但一些 Yearn 金庫間接暴露于黑客攻擊。其中通過使用 Idle 和 Angle 的策略,在 yvUSDT 和 yvUSDC 上的風險敞口總計 138 萬美元,任何剩余的壞賬將由 Yearn 金庫承擔,所有金庫都將保持開放并全面運作。[2023/5/3 14:40:03]
攻擊者調用了yUSDT的deposit函數,抵押了?900,?000USDT,并獲得了?820,?000yUSDT:
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]
接下來,攻擊者調用了?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/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:
Yearn.Finance已發布vault v0.2.1(Laika)版本:Yearn.Finance中文站凌晨發微博稱,vault v0.2.1(Laika)已經發布,依然是v2正式上線主網前的測試版本。[2020/11/29 22:27:52]
然后在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
在令人垂涎的30,000美元線上方連續幾天交易后,比特幣跌破該水平,創下5天低點。相比之下,ETH今天上漲了一點,創下了自去年5月以來的新高.
1900/1/1 0:00:00COCOS推特11號更改了名字,官網已經支持換幣。項目是BinanceLabs投資的,坐等幣安換幣起飛,基本面情況往下看:之前是一個游戲擴展解決方案的供應商.
1900/1/1 0:00:004月17日消息,拉丁美洲領先的加密貨幣公司GalacticHoldings宣布成功完成了1,000萬美元的Pre-A輪融資.
1900/1/1 0:00:00香港Web3嘉年華是區塊鏈技術領域備受期待的盛會。這個年度盛會匯集了眾多區塊鏈行業獨角獸、區塊鏈愛好者和技術開發人員.
1900/1/1 0:00:00“我們與?BlueSafari?的業務合并的完成是比特小鹿新時代的開始。”合并交易完成后,比特小鹿CEO孔令輝表示.
1900/1/1 0:00:00各位以太坊質押用戶: 以太坊Shapella網絡升級已于Epoch194048激活,當前以太坊網絡已支持驗證節點的提款和退出功能.
1900/1/1 0:00:00