# Euler Finance遭遇閃電貸攻擊,損失近2億美元3月13日,Euler Finance項目因合約漏洞遭受閃電貸攻擊,導致約1.97億美元資金損失。攻擊者利用了項目中donateToReserves函數缺少流動性檢查的漏洞,通過多次操作不同幣種完成獲利。目前,被盜資金仍滯留在攻擊者帳戶中。## 攻擊過程分析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。## 漏洞原因分析攻擊得以成功的主要原因在於donateToReserves函數缺少必要的流動性檢查。與mint等其他關鍵函數相比,donateToReserves函數未調用checkLiquidity進行用戶流動性驗證。這導致攻擊者能夠通過特定操作使自身帳戶處於可被清算狀態,隨後完成清算獲利。正常情況下,checkLiquidity函數會調用RiskManager模塊,確保用戶的Etoken數量始終大於Dtoken數量。然而,donateToReserves函數跳過了這一關鍵步驟,爲攻擊創造了可乘之機。## 安全建議此次事件再次凸顯了智能合約安全審計的重要性。項目方在上線前應當進行全面細致的安全檢查,尤其是針對借貸類項目,更需要重點關注以下幾個方面:1. 資金償還機制的完整性2. 流動性檢測的全面性3. 債務清算流程的安全性只有確保這些關鍵環節的安全,才能有效防範類似攻擊的發生。隨着Web3生態的不斷發展,智能合約的安全將持續成爲業界關注的焦點。
Euler Finance遭閃電貸攻擊損失1.97億美元 合約漏洞成主因
Euler Finance遭遇閃電貸攻擊,損失近2億美元
3月13日,Euler Finance項目因合約漏洞遭受閃電貸攻擊,導致約1.97億美元資金損失。攻擊者利用了項目中donateToReserves函數缺少流動性檢查的漏洞,通過多次操作不同幣種完成獲利。目前,被盜資金仍滯留在攻擊者帳戶中。
攻擊過程分析
攻擊者首先從某借貸平台閃電貸借入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。
漏洞原因分析
攻擊得以成功的主要原因在於donateToReserves函數缺少必要的流動性檢查。與mint等其他關鍵函數相比,donateToReserves函數未調用checkLiquidity進行用戶流動性驗證。這導致攻擊者能夠通過特定操作使自身帳戶處於可被清算狀態,隨後完成清算獲利。
正常情況下,checkLiquidity函數會調用RiskManager模塊,確保用戶的Etoken數量始終大於Dtoken數量。然而,donateToReserves函數跳過了這一關鍵步驟,爲攻擊創造了可乘之機。
安全建議
此次事件再次凸顯了智能合約安全審計的重要性。項目方在上線前應當進行全面細致的安全檢查,尤其是針對借貸類項目,更需要重點關注以下幾個方面:
只有確保這些關鍵環節的安全,才能有效防範類似攻擊的發生。隨着Web3生態的不斷發展,智能合約的安全將持續成爲業界關注的焦點。