Euler Finance遭2亿美元闪电贷攻击 合约漏洞成主因

robot
摘要生成中

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

2023年3月13日,Euler Finance项目因合约漏洞遭受闪电贷攻击,造成约1.97亿美元的重大损失。攻击者利用了项目中Etoken的donateToReserves函数缺乏流动性检查这一漏洞,通过多次操作不同币种获取了巨额利润。

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,然后再次借出同等数量的eDAI和dDAI。

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

  5. 最后提取3890万DAI,归还闪电贷后获利约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漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

漏洞原因

攻击得以成功的主要原因是Euler Finance合约中的donateToReserves函数缺少必要的流动性检查。与mint等其他关键函数不同,donateToReserves函数未调用checkLiquidity进行用户流动性验证,导致攻击者能够操纵自身账户状态,使其符合清算条件,从而完成攻击。

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

安全建议

针对此类攻击,建议DeFi项目方:

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

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

  3. 确保所有可能影响用户资产状态的函数都实施严格的安全检查。

  4. 定期进行漏洞扫描和安全评估,及时修复潜在风险。

  5. 建立应急响应机制,以便在发生安全事件时快速反应和处理。

这起事件再次凸显了智能合约安全的重要性,提醒Web3项目开发者和用户时刻保持警惕,共同维护区块链生态的安全与稳定。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
DeFi小灰灰vip
· 18小时前
又一个漏洞血亏
回复0
SignatureVerifiervip
· 19小时前
显然输入验证不足... *叹气* 又是一天,又是一个漏洞
查看原文回复0
论坛潜水怪vip
· 19小时前
早说了别碰DeFi
回复0
Gas_FeeCriervip
· 19小时前
又一个亏到裤子都没了
回复0
Sunday Degenvip
· 19小时前
又一个暴毙的
回复0
mev_me_maybevip
· 19小时前
又是合约漏洞呀?老路数了
回复0
GasWastervip
· 19小时前
哎,又是一天又一个漏洞……审核失败浪费了gas,真让人无奈。
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)