SharkTeam:UwU Lend攻擊事件分析

2024-06-13 10:30 SharkTeam


免責聲明: 內容不構成买賣依據,投資有風險,入市需謹慎!

SharkTeam:UwU Lend攻擊事件分析

SharkTeam 項目認證 剛剛 關注

來源:SharkTeam

2024年6月10日,UwU Lend遭受攻擊,項目方損失約1930萬美元。

一、攻擊交易分析

攻擊者:0x841dDf093f5188989fA1524e7B893de64B421f47

攻擊者共發起了3筆攻擊交易:

攻擊交易1:

0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b

攻擊交易2:

0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376

攻擊交易3:

0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3

以攻擊交易1爲例,進行分析:

攻擊合約:0x21c58d8f816578b1193aef4683e8c64405a4312e

目標合約:UwU Lend金庫合約,包括:

uSUSDE:0xf1293141fc6ab23b2a0143acc196e3429e0b67a6

uDAI:0xb95bd0793bcc5524af358ffaae3e38c3903c7626

uUSDT:0x24959f75d7bda1884f1ec9861f644821ce233c7d

攻擊過程如下:

1. 從不同平台閃電貸多種代幣,包括WETH, WBTC, sUSDe, USDe, DAI, FRAX, USDC, GHO

代幣接收地址爲0x4fea76b66db8b548842349dc01c85278da3925da

閃電貸的代幣和數量如下:

從AaveV3中閃電貸159,053.16 WETH和14,800 WBTC

從AaveV2中閃電貸40,000 WETH

從Spark中閃電貸91,075.70 WETH和4,979.79 WBTC

從Morpho中閃電貸301,738,880.01 sUSDe,236,934,023.17 USDe和100,786,052.15 DAI

從Uniswap V3: FRAX-USDC 中閃電貸60,000,000 FRAX和15,000,000 USDC

從Balancer中閃電貸4,627,557.47 GHO和38,413.34 WETH

從Maker中閃電貸500,000,000 DAI

共計約328,542.2 WETH,19779.79 WBTC,600786052.15 DAI,301,738,880.01 sUSDe,236,934,023.17 USDe,4,627,557.47 GHO,60,000,000 FRAX,15,000,000 USDC

2. 將閃電貸的Token轉移到合約0xf19d66e82ffe8e203b30df9e81359f8a201517ad(簡記爲0xf19d)中,爲發起攻擊做准備。

3. 通過兌換(exchange)代幣,控制sUSDe的價格(降低價格)

(1)USDecrvUSD.exchange

將8,676,504.84 USDe兌換成8,730,453.49 crvUSD,USDecrvUSD中USDe數量增加,價格降低,crvUSD數量減少,價格提高

(2)USDeDAI.exchange

將46,452,158.05 USDe兌換成14,389,460.59 DAI,USDeDAI中USDe數量增加,價格降低,DAI數量減少,價格提高

(3)FRAXUSDe.exchange

將14,477,791.69 USDe兌換成46,309,490.86 FRAX,USDeDAI中USDe數量增加,價格降低,FRAX數量減少,價格提高

(4)GHOUSDe.exchange

將4,925,427.20 USDe兌換成4,825,479.07 GHO,USDeDAI中USDe數量增加,價格降低,GHO數量減少,價格提高

(5)USDeUSDC.exchange

將14,886,912.83 USDe兌換成14,711,447.94 USDC,USDeDAI中USDe數量增加,價格降低,USDC數量減少,價格提高

以上exchange後,5個資金池中的USDe價格降低。最終導致sUSDe價格大跌。

4. 不斷創建借貸頭寸,即向LendingPool合約中存入其他資產(WETH,WBTC和DAI),然後借貸sUSDe。因爲sUSDe價格大跌,因此,借出的sUSDe數量比價格大跌前要多很多。

5. 與第3步類似,反向操作將sUSDe的價格拉高。

由於sUSDe被拉高,第4步借貸的頭寸價值超過抵押價值,達到了清算的標准。

6. 批量地對借貸頭寸進行清算,獲得清算獎勵uWETH

7. 償還貸款,提取標的資產WETH, WBTC,DAI和sUSDe。

8. 將sUSDe再次存入到LendingPool中,此時sUSDe價格被拉高,因此可以借貸出較多其他資產,包括DAI和USDT。

9. 兌換代幣,償還閃電貸。最終獲利1,946.89 ETH

二、漏洞分析

通過以上分析,發現整個攻擊過程存在大量的閃電貸以及多次操縱sUSDe的價格,當抵押sUSDe時,會影響借出資產的數量;當借出sUSDe時,會影響借貸率,進而影響清算系數(健康因子)。

攻擊者利用這一點,通過閃電貸砸低sUSDe的價格,抵押其他資產,借出大量的sUSDe,然後再擡高sUSDe的價格,清算抵押資產而獲利,並將剩余的sUSDe抵押借出其他資產,最後償還閃電貸,攻擊完成。

從上面第3步發現,攻擊者通過控制Curve Finance的USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe和USDe/SDC這5個交易池中的USDe的價格來操縱sUSDe的價格的。價格讀取函數如下:

其中,sUSDe價格由11個價格計算得到的,其中前10個由CurveFinance中讀取,最後一個又UniswapV3提供。

從CurveFinance中讀取的價格則是由USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe和USD/SDC這5個交易池提供,也是攻擊者在攻擊交易中操縱的5個交易池。

返回的價格由uwuOracle讀取的price,CurveFinance交易池合約中的price_oracle(0)和get_p(0)計算得到的。

(1)price是有Chainlink提供的價格,是不可以操縱的;

(2)交易池參數

攻擊者通過操縱交易池的代幣數量來操縱get_p(0)的返回值,進而實現操縱價格。

三、安全建議

針對本次攻擊事件,开發過程中應遵循以下注意事項:

(1)針對操縱價格的漏洞,可以採用鏈下的價格預言機,這樣可以避免價格被操縱。

(2)項目上线前,需要由第三方專業的審計公司進行智能合約審計。

0 好文章,需要你的鼓勵
了解更多區塊鏈一线報道,與作者、讀者更深入探討、交流,歡迎添加小助手QQ: 3150128700, 進入[金色財經讀者交流群]。
聲明:本文由入駐金色財經的作者撰寫,觀點僅代表作者本人,絕不代表金色財經贊同其觀點或證實其描述。
本文作者: SharkTeam
打开金色財經App 閱讀全文 打开金色財經,閱讀體驗更佳 金色財經 > SharkTeam > SharkTeam:UwU Lend攻擊事件分析 免責聲明: 金色財經作爲开放的資訊分享平台,所提供的所有資訊僅代表作者個人觀點,與金色財經平台立場無關,且不構成任何投資理財建議。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:SharkTeam:UwU Lend攻擊事件分析

地址:https://www.sgitmedia.com/article/32204.html

相關閱讀: