建議項目方增強價格預言機的抗操縱能力,設計更安全的預言機餵價機制。
作者: Doris,慢霧安全團隊
背景
2024 年 6 月 10 日,根據慢霧 MistEye 安全監控系統監測,EVM 鏈上提供數位資產借貸服務的平台 UwU Lend 遭攻擊,損失約 1,930 萬美元。慢霧安全團隊對此事件展開分析並將結果分享如下:
相關資訊
攻擊者地址:
0x841ddf093f5188989fa1524e7b893de64b421f47
存在漏洞的合約地址:
0x9bc6333081266e55d88942e277fc809b485698b9
攻擊交易:
0xca1bbf3b320662c89232006f1ec6624b56242850f07e0ffbad
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
攻擊核心
本次攻擊的核心點在於攻擊者可以透過在 CurveFinance 的池子中進行大額兌換直接操縱價格預言機,影響 sUSDE 代幣的價格,並利用被操縱後的價格套出池子中的其他資產。
攻擊流程
1. 閃電貸借入資產並砸低 USDE 的價格:攻擊者首先透過閃電貸借入大量資產,並在可以影響 sUSDE 價格的 Curve 池子中將藉來的部分 USDE 代幣兌換成其他代幣。
2. 大量創建借貸頭寸:在當前 sUSDE 價格大跌的情況下,存入其他底層代幣大量借出 sUSDE 代幣。
3. 再次操縱預言機拉高 sUSDE 的價格:透過在先前的 Curve 池子中進行反向兌換操作,將 sUSDE 的價格迅速拉高。
4. 大量清算負債部位:由於 sUSDE 的價格迅速拉高,使得攻擊者可以大量清算先前借款的部位來獲得 uWETH。
5. 存入剩餘的 sUSDE 並借出合約中的其他底層代幣:攻擊者再次存入目前處於高價的 sUSDE 來借出更多的底層資產代幣獲利。
不難看出,攻擊者主要是透過反覆操縱 sUSDE 的價格,在低價時進行大量的借款,而在高價時進行清算和再抵押獲利。我們跟進到計算 sUSDE 價格的預言機合約 sUSDePriceProviderBUniCatch 中:
可以看出 sUSDE 的價格是先從 CurveFinance 上的 USDE 池子和 UNI V3 池子取得 11 個 USDE 代幣的不同價格,再根據這些價格進行排序和計算中位數來確定的。
而在這裡的計算邏輯中,其中 5 個 USDE 的價格是直接使用 get_p 函數獲取 Curve 池子的即時現貨價格,這才導致了攻擊者可以在一筆交易內以大額兌換的方式直接影響價格中位數的計算結果。
MistTrack 分析
根據鏈上追蹤工具 MistTrack 分析,攻擊者 0x841ddf093f5188989fa1524e7b893de64b421f47 在此次攻擊中獲利約 1,930 萬美元,包括幣種 ETH, crvUSD, bLUSD,, US,隨後被取代為
透過對攻擊者地址的手續費溯源,查詢到該地址上的初始資金來自 Tornado Cash 轉入的 0.98 ETH,隨後該地址還接收到 5 筆來自 Tornado Cash 的資金。
拓展交易圖譜發現,攻擊者將 1,292.98 ETH 轉移至地址 0x48d7c1dd4214b41eda3301bca434348f8d1c5eb6,目前該地址的餘額為 1,282.98 ETH;攻擊者將剩下的 4,00026672267262067222662062022226 5ddadb563feb70,目前該地址的餘額為 4,010 ETH。
MistTrack 已將相關地址封鎖,並將持續關注被盜資金的轉移動態。
總結
這次攻擊的核心在於攻擊者利用價格預言機的直接獲取現貨即時價格和中位數計算價格的兼容缺陷來操縱 sUSDE 的價格,從而在嚴重價差的影響下進行借貸和清算來獲取非預期的利潤。慢霧安全團隊建議專案方增強價格預言機的抗操縱能力,設計更安全的預言機餵價機制,避免類似事件再次發生。
免責聲明:作為區塊鏈資訊平台,本站所發布文章僅代表作者及來賓個人觀點,與 Web3Caff 立場無關。文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。