2023 年 3 月 13 日,DeFi 协议 Euler Finance 被利用,在多笔交易中造成约 1.97 亿美元的损失。约 34,224,863$USDC , 849$WBTC , 85,818$stETH 和 8,877,507$给予 被偷了。
关于欧拉金融
时间回到2020年6月,Euler在Encode Club举办的Spark College Hackathon线上比赛中获得第一名。
Euler 最初是一个建立在 Aave、Compound 和其他借贷协议之上的借贷协议,允许用户为任何 ERC-20 代币创建自己的借贷市场,同时还提供 Reactive 利率模型以减少治理干预。
2021年8月,欧拉获得Paradigm领投的800万美元A轮融资。在官网上,欧拉还显示他们有六名审计员,都没有发现严重漏洞。
相关资料
项目地址:
0x27182842e098f60e3d576794a5bffb0777e025d3
攻击交易:
https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d
https://etherscan.io/tx/0x47ac3527d02e6b9631c77fad1cdee7bfa77a8a7bfd4880dccbda5146ace4088f
https://etherscan.io/tx/0x71a908be0bef6174bccc3d493becdfd28395d78898e355d451cb52f7bac38617
https://etherscan.io/tx/0x62bd3d31a7b75c098ccf28bc4d4af8c4a191b4b9e451fab4232258079e8b18c4
https://etherscan.io/tx/0x465a6780145f1efe3ab52f94c006065575712d2003d83d85481f3d110ed131d9
https://etherscan.io/tx/0x3097830e9921e4063d334acb82f6a79374f76f0b1a8f857e89b89bc58df1f311
攻击者:
0x5f259d0b76665c337c6104145894f4d1d2758b8c
0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4
我们拿一个tx来分析。
1. 黑客首先借了 3000 万美元$给予 并创建了两个攻击合同。 0x583 用于借贷,0xA03 用于清算。然后他将 3 亿美元存入借款合同。
2. 攻击者存入 2000 万美元以获得 19,568,124 eDAI。
3. 然后攻击者调用 mint 函数使用 19,568,124 个 eDAI 借入 195,681,243 个 eDAI(抵押资产)和 200,000,000 个 dDAI(债务资产),从而将 eDAI 余额扩大到十倍。
4. 攻击者随后通过repay函数存入剩余的10M DAI,再次借入195,681,243 eDAI和200,000,000 dDAI。
5. 攻击者随后进行donateToReserves操作,销毁100M eDAI,使得eDAI <; dDAI,达到清算条件。
6. 清算合约对借款合约进行清算。
7. 攻击者最终从合约中取出所有 3890 万个 DAI,并将 3000 万个 DAI 返还给 AAVE,获利约 890 万美元 DAI。
漏洞分析
Etoken 合约的 donateToReserves 函数无法检查用户实际持有的代币数量和捐赠后用户账本的健康状况,导致攻击者可以捐赠 1 亿个 eDAI(通过杠杆,用户实际只存入 3000 万 DAI)。捐赠后,用户账本的健康状态符合清算条件,导致借贷合约被清算。借贷合约将 eDAI 和 dDAI 转移到清算合约,然后清算。由于呆账数额异常大,清算合约将以最大折扣进行清算,清算后产生310.93M eDAI和259.31M dDAI。至此,用户已经恢复健康,可以提现了,可以提现的金额就是eDAI和dDAI的差额。但是,由于池中只有 3890 万个 DAI,因此只能提取该数量。
总的来说,攻击的根本原因是Etoken合约没有正确检查用户实际持有的代币数量和捐赠后用户账本的健康状况,这为攻击者提供了可乘之机。
资金流向
截至发稿时,地址 0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4 中持有 80,080.98 ETH。
88,651.70 ETH 和 43063733.27 DAI 保存在地址 0xb66cd966670d962C227B3EABA30a872DbFb995db。
只有一小部分(100 ETH)被转移到 Tornado Cash。
在 kyt.beosin.com 上试用 Beosin KYT。
受 Euler 影响的协议有哪些?
根据 0xScope 的数据,Angle Protocol 在 Euler 中拥有 1760 万美元的 USDC; Idle DAO 在 Euler 中拥有 460 万美元的 USDC; SwissBorg 在 Euler 中存入了 6,357 个以太币和 170 万个 USDT。攻击发生后,SwissBorg 迅速借入 4,752 cbETH 以减轻损失,但在 Euler 中仍有约 426 万美元的资产; 0x28a5 鲸鱼地址和 czsamsun.eth 在协议中分别拥有 400 万美元和 274 万美元。
收益聚合器 Yearn 在推特上表示,虽然它没有直接暴露于 Euler 攻击,但一些 Yearn 保险库间接暴露于黑客攻击。
Idle Finance 发推表示,自己也受到了影响。
建议
1. 在开发智能合约时,注意后续增加的功能是否对前面的逻辑有影响。
2.仔细检查资产。