Euler Finance遭閃電貸攻擊 損失近2億美元

robot
摘要生成中

Euler Finance項目遭受閃電貸攻擊,損失近2億美元

3月13日,Euler Finance項目因智能合約漏洞遭受閃電貸攻擊,損失高達1.97億美元。攻擊者利用了項目中Etoken合約的donateToReserves函數缺乏流動性檢查這一漏洞,通過多種加密貨幣進行了多次攻擊操作。

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

攻擊過程分析

攻擊者首先從某借貸平台獲取了3000萬DAI的閃電貸,隨後部署了借貸和清算兩個合約。攻擊過程大致如下:

  1. 將2000萬DAI質押到Euler Protocol合約,獲得1950萬eDAI。

  2. 利用Euler Protocol的10倍槓杆功能,借出1.956億eDAI和2億dDAI。

  3. 使用剩餘1000萬DAI償還部分債務,銷毀相應dDAI。

  4. 再次借出同等數量的eDAI和dDAI。

  5. 通過donateToReserves函數捐贈1億eDAI,然後調用liquidate函數進行清算,獲得3.1億dDAI和2.5億eDAI。

  6. 最後提取3890萬DAI,償還閃電貸後獲利887萬DAI。

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

漏洞原因分析

此次攻擊的核心在於Euler Finance項目的donateToReserves函數缺少必要的流動性檢查。與mint等其他關鍵函數相比,donateToReserves函數未調用checkLiquidity進行用戶流動性驗證。這使得攻擊者能夠操縱自身帳戶狀態,使其符合清算條件,從而實現不當獲利。

正常情況下,checkLiquidity函數會調用RiskManager模塊,確保用戶的Etoken數量始終大於Dtoken數量。然而,由於donateToReserves函數跳過了這一步驟,攻擊者得以繞過安全機制。

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

安全建議

此事件再次凸顯了智能合約安全審計的重要性。對於借貸類項目,尤其需要重點關注以下幾個方面:

  1. 資金償還機制的完整性
  2. 流動性檢測的全面性
  3. 債務清算過程的安全性

項目方在合約部署前,應當進行全面細致的安全審計,以防範類似漏洞的出現。同時,持續的安全監控和及時的漏洞修復也是保障項目長期安全運行的關鍵。

Euler Finance漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

EUL0.74%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 2
  • 分享
留言
0/400
狗庄的小兵vip
· 07-25 11:58
搞事的又来了
回復0
DeFi工程师Jackvip
· 07-25 11:45
*sigh* 智能合约设计的业余时光... 认证给我看看,不然就滚蛋
查看原文回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)