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

robot
摘要生成中

Euler Finance遭受闪电贷攻击,损失高达1.97亿美元

2023年3月13日,Euler Finance项目因合约漏洞遭受闪电贷攻击,导致巨额损失。攻击者利用合约中donateToReserves函数缺少流动性检查的漏洞,通过多次操作获取了大量资金。本次事件涉及6种代币,总损失达1.97亿美元。

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

攻击过程分析

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

  2. 攻击者将2000万DAI质押到Euler Protocol合约中,获得19.5万个eDAI。

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

  4. 攻击者使用剩余的1000万DAI偿还部分债务并销毁相应的dDAI,随后再次借出195.6万个eDAI和200万个dDAI。

  5. 关键步骤:攻击者调用donateToReserves函数,捐赠100万eDAI(是偿还资金的10倍)。紧接着,攻击者调用liquidate函数进行清算,获得310万dDAI和250万eDAI。

  6. 最后,攻击者提取38.9万DAI,并归还闪电贷的3000万DAI,最终获利887万DAI。

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. 考虑引入多重签名机制或时间锁定等额外的安全措施。

这次事件再次提醒我们,在快速发展的DeFi领域,合约安全始终是至关重要的。项目方需要不断加强安全意识,采取多重防护措施,以保护用户资产的安全。

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

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
Hodl老司机vip
· 07-13 01:44
又一坑,老司机踩了十年了还在踩
回复0
割肉不割爱vip
· 07-13 01:36
又又又炸了
回复0
GasFee_Criervip
· 07-12 00:27
合约也太糊弄了吧
回复0
NFT元宇宙画家vip
· 07-10 03:38
又一个由于算法验证不足而导致的原始漏洞……无语,web3 现在简直是在哭泣
查看原文回复0
社恐质押者vip
· 07-10 03:26
合约安全感人呐
回复0
Stake_OrRegretvip
· 07-10 03:23
漏洞狗吃香哦
回复0
熊市生存者vip
· 07-10 03:18
又一场战损,行情都被激活了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)