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

robot
摘要生成中

Euler Finance遭受閃電貸攻擊損失1.97億美元

3月13日,Euler Finance項目因智能合約漏洞遭受閃電貸攻擊,造成高達1.97億美元的損失。這次攻擊涉及6種代幣,是近期最大規模的DeFi攻擊事件之一。

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

攻擊過程分析

攻擊者首先從某借貸平台獲取3000萬DAI的閃電貸,隨後部署了借貸合約和清算合約。接着將2000萬DAI質押到Euler Protocol獲得1950萬eDAI。

利用Euler Protocol的10倍槓杆,攻擊者借出了1.956億eDAI和2億dDAI。隨後用剩餘1000萬DAI償還部分債務並銷毀相應dDAI,再次借出同等數量的eDAI和dDAI。

關鍵步驟是調用donateToReserves函數捐贈1億eDAI,隨後通過liquidate函數清算獲得3.1億dDAI和2.5億eDAI。最後提取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的donateToReserves函數中。與mint等其他函數不同,donateToReserves缺少了關鍵的checkLiquidity步驟。這導致用戶可以繞過流動性檢查,人爲制造清算條件並從中獲利。

正常情況下,checkLiquidity會調用RiskManager模塊檢查用戶的eToken是否大於dToken,以確保帳戶健康。缺少這一步驟使攻擊者得以操縱自身帳戶狀態,實現不當清算。

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

安全建議

針對此類攻擊,DeFi項目應重點關注以下幾個方面:

  1. 合約上線前進行全面的安全審計,尤其關注資金償還、流動性檢測和債務清算等關鍵環節。

  2. 在所有可能影響用戶資產狀態的函數中添加必要的安全檢查。

  3. 定期進行代碼review,及時發現並修復潛在漏洞。

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

  5. 考慮引入多重籤名等機制,增加攻擊難度。

隨着DeFi生態的不斷發展,項目方需要更加重視智能合約安全,採取全方位的防護措施,最大限度降低類似風險。

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

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 8
  • 分享
留言
0/400
rekt_but_not_brokevip
· 07-07 15:13
漏洞割韭菜又新高了
回復0
Layer2观察员vip
· 07-07 04:02
又一轮合约漏洞套现 代码永远不骗人
回復0
Gas Fee Whisperervip
· 07-06 16:17
智能合约也不智能啊
回復0
永远在抄底vip
· 07-06 16:16
割割割 又到收割季了
回復0
ser_we_are_ngmivip
· 07-06 16:16
又是被闪电贷打崩了
回復0
TradFi难民vip
· 07-06 16:12
DeFi一日三惊吓
回復0
Token新手指南vip
· 07-06 16:11
温馨提示:智能合约安全的重要性再次得到验证 数据显示85%的项目在上线前未做全面审计
回復0
跑路预警Botvip
· 07-06 16:11
又一个要跑的
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)