近7000万美元被盗:Curve被攻击事件分析

7 月 31 日,以太坊编程语言Vyper发布公告称,Vyper 0.2.15、0.2.16 和 0.3.0 版本的递归锁失效。随后Curve Finance等相关协议出现了漏洞攻击事件。 漏洞的根源都是某些版本的 Vyper 中出现故障的递归锁。攻击者通过反复重新签署合约,导致未经授权的操作或资金被盗。

Curve被攻击的资金池包括CRV/ETH、alETH/ETH、msETH/ETH以及pETH/ETH 。超过 4500 万美元的流动性已从借贷协议 Alchemix、合成资产 Metronome 、NFT 借贷平台 JPEG'd 的池中中流失,近 2500 万美元从 CRV/ETH 池中流出。每个资金池的被攻击金额如下:

CRV/ETH : 7,193,401.77 CRV (被攻击时价值约 510 万美元 ),7,680.49 WETH (约 1420 万美元)以及2,879.65 ETH (约 540 万美元)
alETH/ETH:7,258.70 WETH (约 1360 万美元) 以及 4,821.55 alETH (约 900 万美元)
msETH/ETH:866.55 WETH (约 160 万美元) and 959.71 msETH (约 180 万美元)
pETH/ETH:6,106.65 WETH (1100 万美元)

接下来我们通过举例CRV/ETH池来分析一下攻击路径。

CRV/ETH 池涉及2笔攻击交易(第二笔是白帽交易)。

攻击交易1
ETH Transaction Hash:0x2e7dc8b2fb7e25fd00ed9565dcc0ad4546363171d5e00f196d48103983ae477c / ETH Block Explorer

7 月 30 日 19:08 UTC,发生了一次攻击,Curve 池中的 CRV 和 ETH 遭受损失。 攻击者获利7,193,401.77 CRV(当时价值约 510 万美元)和 7,680.49 WETH(约 1420 万美元)。

攻击路径如下:

  • 攻击者从 Balancer开设了10,000 WETH 闪电贷,并将其全部unwrapped为 ETH。
  • 随后他们向 Curve CRV/ETH 池提供了 400 ETH 作为流动性,并收到了 9,804.78 CRV/ETH LP 代币。
  • 将 500 ETH 兑换为 1,212,778.28 CRV。
  • 从池中提取 517,589.04 CRV 和 203.26 ETH,销毁4,674.13 CRV/ETH LP 代币。
  • 提取 1,730,367.33 CRV,销毁 4,674.13 CRV/ETH LP 代币。
  • 将 1,730,367.33 CRV 兑换为 639.89 ETH。
  • 重复此过程,直到 CRV 从池中全部消耗。

截止目前7,193,401.77 CRV和 7,680.49 WETH已转移至 CRV/ETH攻击者钱包地址。
CRV/ETH攻击者地址:
CRV/ETH Exploiter 2 | ETH Address: 0xb1c33b391c2569b737ec387e731e88589e8ec148 / Tokenview Block Explorer

该攻击是独特的,因为除了“递归锁漏洞”攻击之外,还进行了套利攻击。 因为 CRV-ETH 池是本次事件中唯一被攻击的非稳定池。

攻击交易2
ETH Transaction Hash:0xcd99fadd7e28a42a063e07d9d86f67c88e10a7afe5921bd28cd1124924ae2052 / ETH Block Explorer

7 月 30 日 22:00 UTC,发生了第二次攻击,耗尽了池中剩余的 2,879.65 ETH。 这是 c0ffeebabe.eth 的白帽行动,不久后返还给 Curve 团队 。

被攻击路径如下:

  • 攻击者从 Balancer 开设了 100 WETH 的闪电贷。
  • 他们在 Uniswap 上将 70 WETH 兑换为 190,388.61 CRV。
  • 存入30,000 CRV到池中。
  • 向 Curve 池所有者索取 1,493.16 CRV/ETH LP 代币的管理费。
  • 将池中的 160,388.61 CRV 兑换为 2,949.65 WETH。
  • 向 Curve 池所有者索取 83,647.01 CRV/ETH LP 代币的管理费。
  • 向 Balancer 偿还 100 WETH 以归还闪电贷。
  • 最终2,879.65 ETH(约 540 万美元)已返还至Curve Deployer 地址。
    白帽子返还2,879.65 ETH的交易如下:ETH Transaction Hash:0xb76754124fdde090f25129105ed2907e3c62e0db87ecb8ffcefcb1dede0954fd / ETH Block Explorer

此次Curve攻击事件主要来自Vyper漏洞而产生的合约安全威胁。随着代币CRV价格下跌,由于CRV流通量接近一半都掌握在创始人Michael Egorov手中,因此他也展开了自救行动,开始偿还部分贷款并取回作为抵押品的CRV。这次的攻击事件也再次为整个Defi市场安全提出警告。

 

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

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

相关文章

设计模式行为型——解释器模式

目录 什么是解释器模式 解释器模式的实现 解释器模式角色 解释器模式类图 解释器模式举例 解释器模式代码实现 解释器模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是解释器模式 解释器模式(Interpreter Pattern)属于行为型模式&…

​小程序 WxValidate.js ​再次封装

util.js // 合并验证规则和提示信息 const filterRules (objectItem) > {let rules {}, messages {};for (let key in objectItem) {rules[key] objectItem[key].rulesmessages[key] objectItem[key].message}return { rules, messages } }module.exports {filterRule…

html中非插件实现pdf预览【PC+H5】

这里只考虑非插件以外的方法&#xff0c;插件可以参考pdf.js 1. iframe标签 <iframe src"/file/read?fileaaa&typeupload" width"100%" height"800px"></iframe>经测试&#xff0c;chrome正常显示&#xff0c;firefox不能显示…

为什么要开源?

什么是开源&#xff1f; 开源软件是其源代码已由其版权所有者公开的软件。在真正的开源许可证下&#xff0c;软件是协作开发的&#xff0c;其他程序员可以查看、修改或使用自己的代码。这种“纯”开源模式通常被称为FOSS&#xff08;自由和开源软件&#xff09;。 开源的一个…

《零基础入门学习Python》第075讲:GUI的终极选择:Tkinter12

Tkinter 的基本组件我们已经介绍得七七八八了&#xff0c;剩下的一些我们在这节课全部都会讲解完毕。 &#xff08;一&#xff09;Message组件 Message&#xff08;消息&#xff09;组件是 Label 组件的变体&#xff0c;用于显示多行文本消息。众所周知&#xff0c;我们的Lab…

sqlalchemy flask长时间未使用 导致数据库连接失效

临时解决方案&#xff1a;在正式运行定时任务之前&#xff0c;先跑一个session.query()&#xff0c;相当于唤醒连接。 参考 https://blog.csdn.net/sinat_42483341/article/details/103723691

【腾讯云 Cloud Studio 实战训练营】Redisgo_task 分布式锁实现

文章目录 前言问题场景腾讯云 Cloud Studio Redisgo_task长短类型分布式场景介绍Redisgo_task实现原理SetNx(valueexpire)原子性子协程Done()时间点子协程中的Ticker Redisgo_task唯一外部依赖Redisgo_task Lock结构Redisgo_task架构健壮性设计Redisgo_task可扩展性Redisgo_tas…

MyBatis-Plus 和达梦数据库实现高效数据持久化

一、添加依赖 首先&#xff0c;我们需要在项目的 pom.xml 文件中添加 MyBatis-Plus 和达梦数据库的依赖&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifac…

Docker 命令没有提示信息

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; linux安装docker后发现使用docker命令没有提示功能&#xff0c;使用 Tab 键的时候只是提示已有的文件 解决方案&#xff1a; 提示&#xff1a;这里填写该问题的具体解决方案&#xff1a; Bash命令补全 Docke…

驱动开发 day8 (设备树驱动,按键中断实现led亮灭)

//编译驱动 (注意Makefile的编译到移植到开发板的内核) make archarm //清除编译生成文件 make clean ****************************************** //安装驱动 insmod mycdev.ko //卸载驱动 rmmod mycdev 需要在<内核路径>/arch/arm/boot/dts/ 修改 stm32mp157a-fsm…

微信小程序使用 canvas 2d 实现签字板组件

本文是在微信小程序中使用 canvas 2d 来实现签字板功能&#xff1b; 效果图&#xff1a; 代码&#xff1a; 1、wxml <view><canvas id"canvas"type"2d"bindtouchstart"start"bindtouchmove"move"bindtouchend"end&qu…

Scratch Blocks自定义组件之「下拉图标」

一、背景 由于自带的下拉图标是给水平布局的block使用&#xff0c;放在垂直布局下显得别扭&#xff0c;而且下拉选择后回修改image字段的图片&#xff0c;这让我很不爽&#xff0c;所以在原来的基础上稍作修改&#xff0c;效果如下&#xff1a; 二、使用说明 &#xff08;1&am…

【图论】差分约束

一.情景导入 x1-x0<9 ; x2-x0<14 ; x3-x0<15 ; x2-x1<10 ; x3-x2<9; 求x3-x0的最大值&#xff1b; 二.数学解法 联立式子2和5&#xff0c;可得x3-x0<23;但式子3可得x3-x0<15。所以最大值为15&#xff1b; 三.图论 但式子多了我们就不好解了&#xff0…

开源的跨平台的音视频处理工具FFmpeg

文章目录 FFmpeg概述FFmpeg使用场景go语言中使用FFmpeg FFmpeg概述 FFmpeg是一个开源的跨平台的音视频处理工具&#xff0c;可以对音频、视频进行转码、裁剪、调节音量、添加水印等操作。 广泛的格式支持。 FFmpeg能够解码、编码、转码、复用、分离、流式传输、过滤和播放几乎…

【MySQL】视图与用户管理

【MySQL】视图 视图视图概念使用基表与视图的相互影响 用户管理新增用户删除修改密码 用户权限授予权限回收权限 视图 视图概念 视图就是一张虚拟表&#xff0c;其内容由查询定义。与真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图的数据变化影响到基表&…

SpringBoot内嵌的Tomcat:

SpringBoot内嵌Tomcat源码&#xff1a; 1、调用启动类SpringbootdemoApplication中的SpringApplication.run()方法。 SpringBootApplication public class SpringbootdemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootdemoApplicat…

异常统一处理实现

异常处理 4.6.1 异常问题分析 在service方法中有很多的参数合法性校验&#xff0c;当参数不合法则抛出异常&#xff0c;下边我们测试下异常处理。 请求创建课程基本信息&#xff0c;故意将必填项设置为空。 测试发现报500异常&#xff0c;如下&#xff1a; http://localho…

Vue3和typeScript路由传参

1 params传的参数&#xff0c;页面刷新就消失,而query传的参数&#xff0c;页面刷新还会存在&#xff0c;所以通常用query。 query传参 跳转页面&#xff1a;拿到router对象,调用push方法做跳转. import { useRoute,useRouter} from "vue-router"; export default…

iOS 搭建组件化私有库

一、创建私有库索引 步骤1是在没有索引库的情况下或者是新增索引的时候才需要用到&#xff08;创建基础组件库&#xff09; 首先在码云上建立一个私有库索引&#xff0c;起名为SYComponentSpec 二、本地添加私有库索引 添加私有库索引 pod repo add SYComponentSpec https:/…

Transformer 论文学习笔记

重新学习了一下&#xff0c;整理了一下笔记 论文&#xff1a;《Attention Is All You Need》 代码&#xff1a;http://nlp.seas.harvard.edu/annotated-transformer/ 地址&#xff1a;https://arxiv.org/abs/1706.03762v5 翻译&#xff1a;Transformer论文翻译 特点&#xff1…