当前位置:首页币圈资讯Euler Finance漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

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

注册下载,立即领取价值高达60,000元数字货币盲盒

背景

根据Numen链上监控显示,Mar-13-2023 08:56:35 AM +UTC,Euler Finance 项目因为Et抹茶en中的donateToReserves函数缺少流动性检查而遭到闪电贷攻击。黑客通过不同币种多次调用完成获利,本次攻击共计损失1.97亿美元,金额巨大,涉及6种代币。当前,资金还存留在黑客的账户中。

黑客地址:https://etherscan.io/address/0xb66cd966670d962c227b3eaba30a872dbfb995db

黑客合约:https://etherscan.io/address/0x036cec1a199234fc02f72d29e596a09440825f1c

攻击交易(其中一笔): https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d

详细分析

1.黑客先从Aave闪电贷借了3000W个Dai后部署了两个合约,一个是借贷合约,一个是清算合约。

2.调用deposit函数将借来的Dai其中的20 M个质押到 Euler Protocol合约中获取了19.5M个eDAI。

3.Euler Protocol可以调用mint函数借出10倍存款,此时黑客从中借出了195.6M个eDAI 和200M个dDAI。

4.调用r**函数,用闪电贷剩余的10M个DAI偿还债务并且销毁了10M个dDAI,然后继续调用min函数借出195.6M个eDAI 和200M个dDAI。

5.调用 donateToReserves函数捐赠10倍的偿还资金,发送了100M的eDAI,并调用 liquidate函数去清算,得到310M的dDAI和250M的eDAI。

6.调用withdraw函数获取了38.9M的Dai并且去归还了借的闪电贷30M。从中获利8.87M个Dai。

漏洞成因

先看一下donateToReserves函数,用户能够被清算是在这一步发生的。

与下图的mint函数对比我们发现,donateToReserves函数少了一个关键步骤checkLiquidity。

然后跟进看 checkLiquidity的实现。我们发现了callInternalModule函数,它会调用RiskManager对用户进行检查保证Et抹茶en>Dt抹茶en。

在每次操作的时候需要对用户的流动性进行检查,调用checkLiquidity完成,而donateToReserves这个函数没有执行此操作,导致用户可以通过该协议的某些函数先使自己处于被清算的状态,然后在完成清算。

攻击复现

我们成功复现了此次攻击,详细PoC可查看链接:https://github.com/numencyber/artContractHack_PoC/tree/main/EulerfinanceHack

总结

Numen实验室提醒项目方,合约在上线前要做好安全审计,保证合约安全性,对于借贷类项目需要特别关注资金偿还,流动性检测,债务清算等问题。Numen实验室专注于为WEB3保驾护航。

PARTY AWARD 2023 年度评选开启投票!

经数据初选、公开征集及社区推荐,本届评选已收集了超过190条报名信息,有深耕行业巨头,也有惊艳登场的新星。给无视牛熊“Keep Building”的真Builder 投上宝贵的一票!

点击下方图片立即投票!

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

温馨提示:

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

文章链接:https://www.btchangqing.cn/515712.html

更新时间:2023年04月12日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

币圈资讯

玩客币棋牌(玩客币多少钱)

2023-4-12 21:53:44

币圈资讯

比特币最高价(比特币最高价格是多少)

2023-4-12 22:42:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索