# Euler Finance遭受闪电贷攻击,损失近2亿美元2023年3月13日,Euler Finance项目因合约漏洞遭受闪电贷攻击,造成约1.97亿美元的重大损失。攻击者利用了项目中Etoken的donateToReserves函数缺乏流动性检查这一漏洞,通过多次操作不同币种获取了巨额利润。## 攻击过程分析攻击者首先从某借贷平台获取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合约中的donateToReserves函数缺少必要的流动性检查。与mint等其他关键函数不同,donateToReserves函数未调用checkLiquidity进行用户流动性验证,导致攻击者能够操纵自身账户状态,使其符合清算条件,从而完成攻击。## 安全建议针对此类攻击,建议DeFi项目方:1. 在合约上线前进行全面的安全审计,确保代码安全性。2. 特别关注借贷类项目中的资金偿还、流动性检测和债务清算等关键环节。3. 确保所有可能影响用户资产状态的函数都实施严格的安全检查。4. 定期进行漏洞扫描和安全评估,及时修复潜在风险。5. 建立应急响应机制,以便在发生安全事件时快速反应和处理。这起事件再次凸显了智能合约安全的重要性,提醒Web3项目开发者和用户时刻保持警惕,共同维护区块链生态的安全与稳定。
Euler Finance遭2亿美元闪电贷攻击 合约漏洞成主因
Euler Finance遭受闪电贷攻击,损失近2亿美元
2023年3月13日,Euler Finance项目因合约漏洞遭受闪电贷攻击,造成约1.97亿美元的重大损失。攻击者利用了项目中Etoken的donateToReserves函数缺乏流动性检查这一漏洞,通过多次操作不同币种获取了巨额利润。
攻击过程分析
攻击者首先从某借贷平台获取3000万DAI的闪电贷,随后部署了借贷和清算两个合约。攻击主要步骤如下:
将2000万DAI质押到Euler Protocol合约,获得1950万eDAI。
利用Euler Protocol的10倍杠杆借贷功能,借出1.956亿eDAI和2亿dDAI。
使用剩余1000万DAI偿还部分债务并销毁相应dDAI,然后再次借出同等数量的eDAI和dDAI。
通过donateToReserves函数捐赠1亿eDAI,随后调用liquidate函数进行清算,获得3.1亿dDAI和2.5亿eDAI。
最后提取3890万DAI,归还闪电贷后获利约887万DAI。
漏洞原因
攻击得以成功的主要原因是Euler Finance合约中的donateToReserves函数缺少必要的流动性检查。与mint等其他关键函数不同,donateToReserves函数未调用checkLiquidity进行用户流动性验证,导致攻击者能够操纵自身账户状态,使其符合清算条件,从而完成攻击。
安全建议
针对此类攻击,建议DeFi项目方:
在合约上线前进行全面的安全审计,确保代码安全性。
特别关注借贷类项目中的资金偿还、流动性检测和债务清算等关键环节。
确保所有可能影响用户资产状态的函数都实施严格的安全检查。
定期进行漏洞扫描和安全评估,及时修复潜在风险。
建立应急响应机制,以便在发生安全事件时快速反应和处理。
这起事件再次凸显了智能合约安全的重要性,提醒Web3项目开发者和用户时刻保持警惕,共同维护区块链生态的安全与稳定。