Euler Finance遭闪电贷攻击 损失近2亿美元

Euler Finance项目遭受闪电贷攻击,损失近2亿美元

2023年3月13日,Euler Finance项目遭遇闪电贷攻击,导致约1.97亿美元的巨额损失。攻击者利用了项目合约中的一个漏洞,通过多次操作完成了攻击。目前,被盗资金仍然存留在攻击者的账户中。

Euler Finance漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

攻击过程分析

  1. 攻击者首先从某借贷平台闪电贷借入3000万DAI,并部署了两个合约:一个借贷合约和一个清算合约。

  2. 攻击者将借来的2000万DAI质押到Euler Protocol合约中,获得了19.5百万eDAI。

  3. 利用Euler Protocol的杠杆功能,攻击者借出了195.6百万eDAI和200百万dDAI。

  4. 攻击者使用剩余的1000万DAI偿还部分债务,销毁了10百万dDAI,然后再次借出195.6百万eDAI和200百万dDAI。

  5. 关键步骤:攻击者调用donateToReserves函数,捐赠了100百万eDAI,随后通过liquidate函数进行清算,获得310百万dDAI和250百万eDAI。

  6. 最后,攻击者提取了38.9百万DAI,归还了30百万DAI的闪电贷,最终获利8.87百万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函数存在缺陷。与其他关键函数相比,该函数缺少了必要的流动性检查步骤(checkLiquidity)。这个检查本应确保用户的eToken数量大于dToken数量,以维持合约的健康状态。

由于缺少这个关键检查,攻击者能够通过特定操作使自己处于可被清算的状态,然后利用这一点完成攻击。

安全建议

对于类似的借贷项目,需要特别注意以下几个关键点:

  1. 资金偿还机制的安全性
  2. 流动性检测的全面性
  3. 债务清算流程的严谨性

在合约上线前,进行全面且专业的安全审计是至关重要的。这不仅可以发现潜在的漏洞,还能确保合约的整体安全性和稳定性。

本次事件再次强调了在去中心化金融领域中,合约安全的重要性。项目方应当始终将安全置于首位,以保护用户资产和维护整个生态系统的健康发展。

Euler Finance漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

EUL1.97%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
资深老韭当家vip
· 4小时前
又一个合约被掏空
回复0
tx_pending_forevervip
· 16小时前
智能合约太不智能
回复0
airdrop_whisperervip
· 16小时前
智能合约难安全
回复0
GasFeeCriervip
· 16小时前
又一个漏洞盛宴
回复0
screenshot_gainsvip
· 16小时前
又一个漏洞钱包
回复0
链上考古学家vip
· 16小时前
合约又出事了
回复0
probably_nothing_anonvip
· 16小时前
白嫖无罪中本嫖
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)