Cointime

扫码下载App
iOS & Android

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

项目方

背景 

根据Numen链上监控显示,Mar-13-2023 08:56:35 AM +UTC,Euler Finance 项目因为Etoken中的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.调用repay函数,用闪电贷剩余的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对用户进行检查保证Etoken>Dtoken。 

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

攻击复现 

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

总结 

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

Numen 官网

https://numencyber.com/

GitHub

https://github.com/NumenCyber

Twitter

https://twitter.com/@numencyber

Medium

https://medium.com/@numencyberlabs

LinkedIn

https://www.linkedin.com/company/numencyber/

评论

所有评论

推荐阅读

  • 土耳其提议使加密立法与国际标准保持一致

    土耳其执政党于 5 月 16 日向议会提交了加密法案草案。该法案重点关注加密服务提供商的许可和注册,并与国际标准保持一致。 该法案草案旨在更新现有法律,以全面管理新兴的加密货币市场。该法案的重点领域包括消费者保护、平台透明度以及遵守金融法规。拟议的立法旨在监管该行业的加密货币交易平台和其他服务提供商,要求他们获得土耳其资本市场委员会的许可。

  • 香港金管局:中交建工4家银行为香港数字人民币钱包运营机构

    香港金管局公布参与数字人民币香港跨境试点的机构,包括 : 一、数字人民币钱包运营机构为: 1. 中国银行、2. 交通银行、3. 中国建设银行、4. 中国工商银行。 二、提供“转数快”增值的香港银行支援由人民币户口增值为: 1. 中信银行(国际)有限公司、2. 创兴银行有限公司、3. 大新银行有限公司、4. 星展银行(香港)有限公司、5. 富邦银行(香港)有限公司、6. 众安银行有限公司。 三、提供即时港元兑人民币增值服务支援由人民币和港元户口增值为: 1. 天星银行有限公司、2. 中国银行(香港)有限公司 、3. 交通银行(香港)有限公司、4. 东亚银行有限公司、5. 中国建设银行(亚洲)股份有限公司、6. 招商永隆银行有限公司、7. 富融银行有限公司、8. 恒生银行有限公司、9. 香港上海滙丰银行有限公司、10. 中国工商银行(亚洲)有限公司、11. 渣打银行(香港)有限公司。

  • 过去24小时全网爆仓1.21亿美元,多单爆仓8292万美元

    据 Coinglass 数据显示,过去 24 小时全网爆仓 1.21 亿美元,其中多单爆仓 8292 万美元,空单爆仓 3832 万美元。比特币爆仓约 3497 万美元,以太坊爆仓约 2035 万美元。

  • 名义价值12亿美元的BTC期权和9.3亿美元的ETH期权即将到期

    Greeks.live数据显示,5月17日期权交割数据:1.8万张BTC期权即将到期,Put Call Ratio为0.63,最大痛点63000美元,名义价值12亿美元。 32万张ETH期权即将到期,Put Call Ratio为0.28,最大痛点3000美元,名义价值9.3亿美元。 Greeks.live表示,本周受美股Meme风潮的激励,BTC ETF也收获了明显的资金流入,BTC大幅上涨突破65000美元,但Meme以外的加密市场较为弱势,成交量继续下跌,BTC和ETH的期权数据分化就可以体现这一点。 从大宗交易和市场交易结构看,各主要期限IV下降趋势结束进入横盘,目前下跌的空间不大。BTC多空较为均衡,而ETH币价弱势导致市场信心持续减弱,卖出看涨成为绝对主力成交。

  • Binance协助中国台湾执法部门破获涉案近2亿新台币的重大虚拟资产案件

    5月17日消息,Binance发布公告称,近日,Binance金融犯罪合规部(FCC)联合中国台湾司法部调查局破获一起涉及虚拟资产洗钱的重大刑事案件,涉案金额近新台币2亿元。Binance在整个案件中为台湾犯罪斗士提供支持,提供关键情报和援助,在推进调查方面发挥了关键作用。 除了业务协助外,Binance还在台湾推出了一系列执法培训计划,与十多个不同单位合作,涉及千多名执法人员,这些努力都得到了非常积极的反馈。

  • Tether CEO:Tron Network上增发10亿枚USDT,已授权未发行

    5月17日,Tether CEO Paolo Ardoino表示,已于北京时间今日凌晨在Tron Network上增发10亿枚USDT,已授权未发行,这意味着该金额将用作下一期发行请求和链交换的库存。

  • 链上索引服务Subsquid完成总额1750万美元融资,DFG等参投

    链上索引服务Subsquid宣布通过CoinList社区销售完成630万美元融资,截至目前其融资总额已达到1750万美元,DFG、Hypersphere、Zee Prime、Blockchange和Lattice参投,据悉其原生代币SQD拟于本周五上市,而Subsquid SDK已与Google BigQuery集成,允许开发人员使用Google的技术来分析区块链数据,继而降低业内区块链和开发者社区大规模部署的数据成本。

  • Optimism 2024 Q1报告:EIP-4844的实施使L1提交成本降低了99%

    Optimism发布2024 Q1报告,其中日活地址达到89,000个(环比增长23%),每日交易量增至470,000笔(环比增长39%)。这些指标均略低于2023年第三季度的历史高点。 OP主网的稳定币市值达到8.09亿美元(环比增长32%)。过去六个月,USDT在OP主网上的市值大幅飙升,达到5.12亿美元(环比增长64%),占总市值的63%。 EIP-4844的实施使L1提交成本降低了99%,将平均每日成本从前几周的420,000美元减少到830美元。2024年Q1 OP主网的链上利润为200万美元(环比增长14%)。

  • Peaq通过CoinList Launch完成2000万美元募资

    适用于DePIN和机器RWA的Layer1区块链Peaq在X平台宣布,其通过5月9日至5月16日在CoinList上推出的原生代币Launch中完成2000万美元募资,截至目前超过14.5万名社区成员完成超3600万美元的超额认购,新资金将用于加速peqosystem的增长,并推动各种生态系统和社区计划的进一步巩固。

  • 印度NFT市场NFTFN完成5000万卢比融资

    印度NFT市场NFTFN宣布通过代币分配方式完成5000万印度卢比融资,约合60万美元,新资金将用于其拓展旗下低成本NFT交易平台SuperNova。