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

현재 언어 번역이 없어 원문을 표시합니다.
因为Etoken中的donateToReserves函数缺少流动性检查而遭到闪电贷攻击。黑客通过不同币种多次调用完成获利,本次攻击共计损失1.97亿美元,金额巨大,涉及6种代币。当前,资金还存留在黑客的账户中。 

背景

根据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

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

详细分析

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

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

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

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

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

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

4.调用repay函数,用闪电贷剩余的10M个DAI偿还债务并且销毁了10M个dDAI,然后继续调用min函数借出195.6M个eDAI 和200M个dDAI。 Euler Finance漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

5.调用 donateToReserves函数捐赠10倍的偿还资金,发送了100M的eDAI,并调用 liquidate函数去清算,得到310M的dDAI和250M的eDAI。 Euler Finance漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

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

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

漏洞成因

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

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

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

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

然后跟进看 checkLiquidity的实现。我们发现了callInternalModule函数,它会调用RiskManager对用户进行检查保证Etoken>Dtoken。 Euler Finance漏洞分析:如何遭闪电贷攻击,损失1.97亿美金!

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

攻击复现

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

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

总结

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

공유하기:

작성자: Numen Cyber

이 글은 PANews 입주 칼럼니스트의 관점으로, PANews의 입장을 대표하지 않으며 법적 책임을 지지 않습니다.

글 및 관점은 투자 조언을 구성하지 않습니다

이미지 출처: Numen Cyber. 권리 침해가 있을 경우 저자에게 삭제를 요청해 주세요.

PANews 공식 계정을 팔로우하고 함께 상승장과 하락장을 헤쳐나가세요
PANews APP
미국의 3대 주요 주식 지수는 모두 하락 마감했으며, COIN 지수는 7.59% 이상 떨어졌습니다.
PANews 속보