繁體
  • 简体中文
  • 繁體中文

熱門資訊> 正文

損失約900萬美元——WOOFi 攻擊分析

2024-03-19 19:24

來源:深圳零時科技

2024年3月5日,我們監測到一筆arbitrum鏈上的異常交易:https://arbiscan.io/tx/0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266

經分析,我們發現是一次針對WOOFi的攻擊事件,事件共造成約900萬美元的損失

WOOFi是由WOO Network構建的一體化去中心化應用程序(DApp)。WOOFI旨在通過提供超低滑點、有競爭力的兑換費用以及其他有用功能,優化用户對去中心化金融(DeFi)的體驗。

WOOFi用户可兑換熱門數字資產,還有機會通過質押和向網絡提供流動性來賺取收入。WOOFi平臺為DeFi用户打造的一大價值主張是深度流動性。

本次受攻擊的為WOOFi中的swap合約,合約地址為:https://arbiscan.io/address/0xeff23b4be1091b53205e35f3afcd9c7182bf3062#code

攻擊者從Uniswap、TraderJoe中利用flashLoan獲得攻擊初始資金,共計10504796 USDC.e和2721172 WOO。

隨后,攻擊者將借來的USDC.e在Slio Finance中抵押(共抵押7000000 USDC.e),借出5092663 WOO。

接着,攻擊者利用剩下的USDC.e通過WOOFi的swap功能,兑換為WOO,因此拉高WOO的價格。

經過3次swap操作,將WOO的價格由56884100拉高到了60400479,為后續的攻擊創造了條件。

真正的攻擊發生在攻擊者將WOO兑換為USDC.e時,

可以看到,經過此次swap,WOO的價格變爲了7,即0.00000007 USD。對比之前的價格暴跌了862萬倍

通過查看合約代碼我們發現,WOOFi合約中在進行將BaseToken兑換為QuoteToken時存在數據處理缺陷。

我們看賣出BaseToken得到QuoteToken時,BaseToken的價格計算方法

newPrice = (1 - 2 * k * oracle.price * baseAmount) * oracle.price

攻擊者可以控制oracle.price和baseAmount,因為k值不變。攻擊者可以通過多次swap操縱oracle.price即BaseToken的價格,並且可以操縱baseAmount。由這個公式可以看出,newPrice必定小於oracle.price。所以,攻擊者可以控制oracle.price和baseAmount的組合,將newPrice操縱到極低。

最后,攻擊者利用小額的USDC.e兑換出了大量的WOO,歸還借貸本金並套現。

2天后,WOOFi官方人員與攻擊者溝通,表示可以提供10%作為Whitehat獎金。不過截至發文時,攻擊者還未歸還被盜資金。

隨后,官方修復了這個問題,可以看到,官方修復的方式就是取消了2倍的係數。https://github.com/woonetwork/WooPoolV2/commit/f5fe28acc77cf3801ac379db9bf99bb61b73ba17

本次漏洞的成因是經濟模型計算存在漏洞,攻擊者可以控制價格的買賣數量從而使Token價格大幅縮水,最終導致攻擊者用極少的USDC.e掏空了項目方的WOO代幣。建議項目方在設計經濟模型和代碼運行邏輯時要多方驗證,合約上線前審計時儘量選擇多個審計公司交叉審計。

風險及免責提示:以上內容僅代表作者的個人立場和觀點,不代表華盛的任何立場,華盛亦無法證實上述內容的真實性、準確性和原創性。投資者在做出任何投資決定前,應結合自身情況,考慮投資產品的風險。必要時,請諮詢專業投資顧問的意見。華盛不提供任何投資建議,對此亦不做任何承諾和保證。