智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

news2024/11/18 1:22:34

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

2023 年 3 月 13 日上午 08:56:35 +UTC,DeFi 借贷协议 Euler Finance 遭遇闪电贷攻击。
Euler Finance 是一种作为无许可借贷协议运行的协议。其主要目标是为用户提供各种加密货币的借贷便利。这家总部位于英国的科技初创公司利用数学原理在以太坊和其他区块链网络上开发非托管协议,重点是实现高性能。
根据链上数据分析,攻击者已成功执行多笔交易,造成约 1.96 亿美元的盗窃,成为 2023 年迄今为止最大的黑客攻击。被盗资产包括价值数百万的 DAI、USDC、Staked Ether (StETH) 和 Wrapped Bitcoin (WBTC)。
被盗资产明细如下:

详细分析

由于 Etoken 的 donateToReserves 函数中缺乏流动性检查,所以可能会发生攻击。攻击者使用不同的货币执行多次调用以产生利润,导致六种不同代币的巨额损失 1.96 亿美元。目前,资金仍留在攻击者的账户中。
攻击者地址为:https://etherscan.io/address/0xb66cd966670d962c227b3eaba30a872dbfb995db
攻击者的合约地址为:https://etherscan.io/address/0x036cec1a199234fc02f72d29e596a09440825f1c
其中一项攻击交易可以在这里找到:https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d

  1. 攻击者首先通过闪电贷向 Aave 借了 3000 万个 DAI,然后部署了两份合约:一份用于借贷,一份用于清算。
    image.png
  2. 攻击者随后调用 deposit 函数并向 Euler 协议合约质押 2000 万个 DAI,获得 1950 万个 eDAI 作为回报。
    image.png
  3. Euler Protocol 允许用户通过调用 mint 函数借入最多 10 倍于存款的资金。攻击者利用此功能借入了 1.956 亿个 eDAI 和 2 亿个 dDAI。
    image.png
  4. 攻击者调用 repay 函数,用闪电贷借来剩下的 1000wDai 来偿还债务,并销毁 1000 万 dDAI。然后他们再次调用 mint 功能借入 1.956 亿个 eDAI 和 2 亿个 dDAI。
    image.png
  5. 攻击者随后调用 donateToReserves 函数并捐赠了偿还债务所需金额的 10 倍,发送了 1 亿个 eDAI。然后他们调用 liquidate 函数启动清算过程,获得了 3.1 亿个 dDAI 和 2.5 亿个 eDAI。
    image.png
  6. 攻击者调用了 withdraw 函数,获得了 3890 万个 DAI,用来偿还闪电贷借来的 3000 万个 DAI。他们从这次攻击中获利 887 万 DAI。
    image.png

核心漏洞

首先,让我们看一下 donateToReserves 函数,这是用户容易被清算的地方。
image.png
对比下图中的 donateToReserves 函数和 mint 函数,我们可以看到 donateToReserves 函数中少了一个关键步骤 checkLiquidity。
image.png
接下来,我们跟进检查了 checkLiquidity 的实现。我们发现了 Call InternalModule 函数,它调用 RiskManager 来检查并确保用户的 Etoken > Dtoken。
image.png
每次操作都需要检查用户的流动性,调用 checkLiquidity。
但是 donateToReserves 函数不执行这个操作,让用户先通过协议的某些函数让自己处于清算状态,然后完成清算。

关于攻击的官方更新

Euler Finance 已在其官方推特(@eulerfinance)上确认了此次攻击,并表示他们目前正在与安全专业人员和执法部门合作解决该问题。
image.png
Euler Finance 最近更新了他们为协议用户收回资金的努力。他们概述了自攻击发生以来他们采取的几项行动,包括通过禁用 EToken 模块来尽快停止直接攻击,该模块阻止了存款和易受攻击的捐赠功能。
此外,他们还与各种安全组织合作,例如 TRM Labs、Chainalysis 和更广泛的以太坊安全社区,以协助调查和追回资金。Euler Finance 还与美国和英国的执法部门共享信息。
最后,该公司试图联系攻击者以了解更多有关潜在恢复选项的信息。
image.png

结论

最近针对 Euler Finance 协议的攻击凸显了实施严格安全措施的重要性,例如进行彻底审计和定期检查漏洞。
随着去中心化金融生态系统的不断发展,项目必须优先考虑用户资金的安全并采用最佳实践来降低未来类似攻击的风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免单商城系统小程序开发源码功能解析

商品免单是现在很多商家喜欢做的一种营销活动,市面上几乎所有商家都是利用免单系统进行免单活动的,但大部分的免单系统仅仅只有排队免单功能,免单的周期长类目单一。我们的免单系统是将获客、拉新、留存、转化集于一身,多种免单拓…

什么是Java中的“内存屏障“(Memory Barrier)?它们有什么作用?

内存屏障是一种用于控制内存访问顺序的指令。在多核处理器上运行的多线程程序可能会因处理器的乱序执行和缓存一致性问题而导致意外的行为。内存屏障可以用来强制某些操作的顺序,以确保线程间的正确协同。 作用包括: 保证写入的可见性:内存…

前缀和实例4(和可被k整除的子数组)

题目: 给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的(连续、非空) 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1: 输入:nums [4,5,0,-2,-3,1], k 5 输出:7 …

Linux驱动IO篇——异步通知

文章目录 什么是异步通知异步通知和异步IO的区别信号含义应用层使用信号驱动如何实现异步信号驱动实例 什么是异步通知 异步通知在Linux的实现中是通过信号,而信号是在软件层次上对中断机制的一种模拟。这种机制和中断非常类似,所以可以以中断的思想来理…

AI绘画:如何让图片开口说话生成视频?变现渠道有哪些?

如何让AI绘画做出来的视频可以开口说话,本篇文章给你讲解清楚。 这个项目市面上有很多种叫法,AI数字人,图片说话,图片数字人等等。 废话不多说,直接以AI小和尚为例进行实操。 1.生成图片: 用Midjourney…

操作系统期末复习笔记

文章目录 操作系统第1章 计算机系统概述1 指令执行的基本指令周期2 中断分类与中断处理过程2.1 中断的定义2.2 中断分类2.3 中断的意义2.4 无中断2.5 有中断2.6 中断和指令周期2.7 中断处理的过程 3 处理多中断的两种方法3.1 顺序中断处理(禁止中断)3.2 …

大数据-玩转数据-Flink恶意登录监控

一、恶意登录 对于网站而言,用户登录并不是频繁的业务操作。如果一个用户短时间内频繁登录失败,就有可能是出现了程序的恶意攻击,比如密码暴力破解。 因此我们考虑,应该对用户的登录失败动作进行统计,具体来说&#x…

批量获取CSDN文章对文章质量分进行检测,有助于优化文章质量

📚目录 ⚙️简介✨分析获取步骤⛳获取文章列表☘️前期准备✨ 接口解析⚡️ 获取文章的接口 ☄️文章质量分接口⭐接口分析 ⌛代码实现:⚓核心代码:⛵测试用例:⛴ 运行效果:☘️增加Excel导出 ✍️结束 ⚙️简介 有时候我们写文章是为了记录当下遇到的bu…

乙方策划人员的内心独白:写不完的案子,是工作的常态吗?

在某种程度上来说,这是对的。 如果是年轻人来说,在甲方当策划就是当执行,只有积累一定经验才能真正实行策划任务、 而在乙方做策划那就是纯纯的策划,也就是你说的每天写不完的案子。 对于普通人的职场选择往往是就近选择&#…

服务治理平台:SOA与微服务架构的对比与区别

文章目录 1、场景引入2、面向服务的架构SOA3、微服务架构4、对比与联系5、服务治理平台 1、场景引入 如果我们打开支付宝首页,去看我们的余额,它会展示你的总资产,昨日收益、累计收益等信息。假如这个页面所展示的信息,都来自各个…

非常详细的trunk-based分支管理流程配置及使用

非常详细的trunk-based分支管理流程配置及使用。 目前业界主流的版本管理流程是Gitflow 和 trunk-based。 Gitflow流行的比较早。但是目前的流行度要低于 trunk-based模式工作流。trunk-based模式被誉为是现代化持续集成的最佳实践。 他俩的核心区别是,Gitflow是一个更严格…

格式化文件恢复软件有哪些 格式化文件恢复软件怎么用

格式化是指对磁盘或者磁盘中的分区进行初始化的一种操作,但是这种操作会造成磁盘内数据的清除。因此,当我们需要恢复一些数据时,就要借助相关数据恢复软件的帮助,那么下面就来给大家介绍格式化文件恢复软件有哪些,格式…

ORB-SLAM2_RGBD_DENSE_MAP编译、问题解决、离线加载TUM数据和在线加载D435i相机数据生成稠密地图

文章目录 0 引言1 安装依赖1.1 其他库安装1.2 pcl库安装 2 编译ORB-SLAM2_RGBD_DENSE_MAP2.1 build.sh2.2 build_ros.sh 3 运行ORB-SLAM2_RGBD_DENSE_MAP3.1 build.sh编译版本3.2 build_ros.sh编译版本 0 引言 ORB-SLAM2_RGBD_DENSE_MAP是基于ORB-SLAM2框架的一种RGB-D稠密地图…

【C++】LeetCode 160 相交链表

今天再写一道算法题(这两周都写算法题有点摆烂) 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交&#xff1…

第17篇ESP32 platformio_arduino框架 AP热点与AP+STA同时存在模式

笔记本连接ESP32后,串口打印连接状态: 第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 第4篇:vscodeplatformio搭建esp32 arduino开发环境 ​​​​​​第5篇:doit…

影楼管理系统软件erp如何通过快解析发布到外网登录访问

影楼管理系统也叫影楼ERP软件,即影楼信息化管理系统,通常集成了选片、影楼流程管理、婚纱礼服、影楼财务、影楼客服、影楼接单等多功能为一身的影楼app管理。通过影楼管理系统把客户关系管理理念引入影楼管理,有序而全面的建立客户资料库&…

【9】openGL调用imGUI使用其自带例子测试

参考视频 去github下载imgui源码,得到 将根目录下所有.h .cpp文件复制到你的项目文件夹imgui下面。 进入exmaple文件夹,可以看到例子 这是它调用的头文件 在backends里找到你需要的 .h .cpp文件,总共四个文件,复制过来 你的项…

使用阿里云无影云电脑能干什么?

阿里云无影云电脑是一种易用、安全、高效的云上桌面服务,阿里云无影云电脑可用于高数据安全管控、高性能计算等要求的金融、设计、视频、教育等领域,适用于多种办公场景,如远程办公、多分支机构、安全OA、短期使用、专业制图等。阿里云百科来…

Java基于微信小程序的电影交流平台

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章:简介第二章、开发环境:后端:前端:数据库&…

阿里云无影云电脑介绍_云办公_使用_价格和优势说明

什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、…