Euler Finance遭2亿美元闪电贷攻击 智能合约漏洞成祸根

robot
摘要生成中

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

近期,Euler Finance项目因智能合约漏洞遭受闪电贷攻击,导致巨额资金损失。本文将对此次事件进行详细分析。

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

事件概述

2023年3月13日,Euler Finance项目的Etoken合约中donateToReserves函数缺少必要的流动性检查,被攻击者利用进行闪电贷攻击。攻击者通过多次操作不同币种,最终造成约1.97亿美元的损失,涉及6种代币。目前被盗资金仍滞留在攻击者账户中。

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

攻击过程分析

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

  2. 通过deposit函数将2000万DAI质押到Euler Protocol合约中,获得1950万eDAI。

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

  1. 利用Euler Protocol的10倍杠杆功能,借出1.956亿eDAI和2亿dDAI。

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

  1. 使用剩余1000万DAI偿还部分债务并销毁相应dDAI,随后再次借出同等数量的eDAI和dDAI。

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

  1. 调用donateToReserves函数捐赠1亿eDAI,随后通过liquidate函数进行清算,获得3.1亿dDAI和2.5亿eDAI。

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

  1. 最后通过withdraw函数提取3890万DAI,归还30万DAI闪电贷,净获利887万DAI。

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

漏洞原因分析

经过代码审查,发现问题出在donateToReserves函数上。与mint等其他关键函数相比,donateToReserves函数缺少了重要的checkLiquidity步骤。

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

checkLiquidity函数通常会调用RiskManager模块对用户进行检查,确保Etoken数量大于Dtoken数量。由于donateToReserves函数未执行此项检查,攻击者得以利用协议中的某些功能先将自身置于可被清算的状态,随后完成清算获利。

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

安全建议

针对此类攻击,项目方应注意以下几点:

  1. 合约上线前必须进行全面的安全审计,确保合约安全性。

  2. 借贷类项目需重点关注资金偿还、流动性检测和债务清算等关键环节。

  3. 所有可能影响用户资产状态的函数都应包含必要的安全检查机制。

  4. 定期进行代码review和漏洞赏金计划,及时发现并修复潜在威胁。

  5. 建立应急响应机制,一旦发生攻击事件能够迅速采取补救措施。

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

随着DeFi项目的不断发展,安全问题愈发重要。项目方应时刻保持警惕,采取全面的安全防护措施,为用户资产安全提供有力保障。

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

EUL-3.79%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 3
  • 分享
评论
0/400
钱包被套到退休vip
· 07-24 17:19
玩啥硬核项目 不如跟我抄底大饼
回复0
RadioShackKnightvip
· 07-22 00:56
又一只韭菜割完了
回复0
Blockblindvip
· 07-22 00:52
又一个毒老鼠出来了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)