Euler Finance遭閃電貸攻擊損失1.97億美元 合約漏洞成主因

robot
摘要生成中

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

3月13日,Euler Finance項目因合約漏洞遭受閃電貸攻擊,導致約1.97億美元資金損失。攻擊者利用了項目中donateToReserves函數缺少流動性檢查的漏洞,通過多次操作不同幣種完成獲利。目前,被盜資金仍滯留在攻擊者帳戶中。

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

攻擊過程分析

  1. 攻擊者首先從某借貸平台閃電貸借入3000萬DAI,並部署了借貸和清算兩個合約。

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

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

  4. 使用剩餘1000萬DAI償還部分債務並銷毀相應dDAI,隨後再次借出同等數量的eDAI和dDAI。

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

  6. 最後提取3890萬DAI,歸還3000萬閃電貸,淨利潤約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億美金!

漏洞原因分析

攻擊得以成功的主要原因在於donateToReserves函數缺少必要的流動性檢查。與mint等其他關鍵函數相比,donateToReserves函數未調用checkLiquidity進行用戶流動性驗證。這導致攻擊者能夠通過特定操作使自身帳戶處於可被清算狀態,隨後完成清算獲利。

正常情況下,checkLiquidity函數會調用RiskManager模塊,確保用戶的Etoken數量始終大於Dtoken數量。然而,donateToReserves函數跳過了這一關鍵步驟,爲攻擊創造了可乘之機。

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

安全建議

此次事件再次凸顯了智能合約安全審計的重要性。項目方在上線前應當進行全面細致的安全檢查,尤其是針對借貸類項目,更需要重點關注以下幾個方面:

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

只有確保這些關鍵環節的安全,才能有效防範類似攻擊的發生。隨着Web3生態的不斷發展,智能合約的安全將持續成爲業界關注的焦點。

EUL-3.67%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
长线梦想家vip
· 16小時前
三年后再看 又是一个价值逆回归的故事 懂得都懂
回復0
Gas Banditvip
· 16小時前
又是智能合约的锅?审计咋审的啊?
回復0
RektCoastervip
· 16小時前
又一个炸弹 又是一地鸡毛
回復0
空投收割机vip
· 16小時前
没想到Euler也翻车了...啧啧
回復0
just_here_for_vibesvip
· 16小時前
又炸了? 致敬跑路人
回復0
铁头矿工vip
· 16小時前
又一韭菜收割机翻车了...
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)