Euler Finance遭1.97億美元閃電貸攻擊 DeFi安全再敲警鍾

robot
摘要生成中

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

2023年3月13日,Euler Finance項目遭受了一次重大閃電貸攻擊,導致約1.97億美元的損失。這次攻擊涉及6種不同的代幣,是近期DeFi領域最大規模的安全事件之一。

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,然後觸發清算,獲得3.1億dDAI和2.5億eDAI。

  6. 最後提取3890萬DAI,歸還閃電貸本金3000萬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漏洞分析:如何遭閃電貸攻擊,損失1.97億美金!

漏洞原因

此次攻擊的核心問題在於Euler Finance的donateToReserves函數缺少必要的流動性檢查。與其他關鍵函數(如mint)相比,donateToReserves沒有調用checkLiquidity函數來驗證用戶的資產狀況。

正常情況下,checkLiquidity會調用RiskManager模塊,確保用戶的eToken數量始終大於dToken數量。然而,由於donateToReserves函數跳過了這一步,攻擊者得以操縱自身帳戶進入可被清算的狀態,從而實施攻擊。

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

安全建議

對於DeFi項目,特別是涉及借貸功能的平台,需要格外注意以下幾點:

  1. 確保所有關鍵函數都包含必要的安全檢查,尤其是流動性驗證。

  2. 在合約上線前進行全面的安全審計,重點關注資金償還、流動性檢測和債務清算等核心環節。

  3. 定期進行代碼review和漏洞掃描,及時發現和修復潛在風險。

  4. 建立健全的風險管理機制,設置合理的借貸限額和清算閾值。

  5. 考慮引入多重籤名或時間鎖等額外安全措施,以防止大規模資金快速流失。

此次事件再次凸顯了DeFi安全的重要性。項目方應當持續加強安全意識,採取多層次的防護措施,以確保用戶資產的安全。同時,用戶在參與DeFi項目時也需保持警惕,了解潛在風險。

EUL3.63%
DEFI-0.89%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
DAOdreamervip
· 07-26 01:35
维护安全先行,审计真滴重要啊
回復0
PoS养老院院长vip
· 07-25 22:05
又一个项目被薅走了 溜了溜了
回復0
GasWasterrvip
· 07-23 02:23
歹毒的黑客又出没了
回復0
Meme币研究员vip
· 07-23 02:19
进行情感分析... 啊,它消失了
查看原文回復0
ForkThisDAOvip
· 07-23 02:14
又一个没做安检就上线的
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)