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

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

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,然后调用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的donateToReserves函数缺少必要的流动性检查。与mint等其他函数不同,donateToReserves未调用checkLiquidity函数来验证用户的资产状况。这使得攻击者能够通过该函数使自身账户处于可被清算的状态,进而实施攻击。

正常情况下,checkLiquidity函数会调用RiskManager模块来确保用户的eToken大于dToken,以维持系统的安全性。然而,donateToReserves函数跳过了这一重要步骤,为攻击者提供了可乘之机。

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

安全建议

这次事件再次凸显了DeFi项目合约安全的重要性。对于借贷类项目,特别需要注意以下几点:

  1. 确保所有涉及资金操作的函数都进行充分的流动性检查。

  2. 严格控制用户的借贷杠杆,防止过度杠杆导致的系统风险。

  3. 实施多重安全机制,如紧急暂停功能,以应对突发安全事件。

  4. 进行全面的合约审计,尤其关注资金偿还、流动性检测和债务清算等关键环节。

  5. 定期进行安全评估和压力测试,及时发现并修复潜在漏洞。

此次攻击事件提醒我们,在快速发展的Web3世界中,安全始终是首要考虑因素。项目方应该投入更多资源到安全建设中,而用户也需要提高风险意识,谨慎参与各类DeFi项目。

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

EUL4.92%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 分享
评论
0/400
airdrop_whisperervip
· 10小时前
又一家爆了 下一家谁
回复0
MEVWhisperervip
· 10小时前
又见闪电贷 服了
回复0
狗狗币单身汉vip
· 10小时前
谁说defi安全的站出来
回复0
NFT_Therapyvip
· 10小时前
寄了呗
回复0
BoredStakervip
· 10小时前
闪电贷又砸场子啦
回复0
Degen4Breakfastvip
· 10小时前
又一家韭菜收割机
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)