背景信息

项目背景

VaultRouter 合约有用特权身份,可以通过 Usd0PP 合约将 USD0++ 以 1:1 的比例兑换成 USD0,随后通过 UniV3 将 USD0 swap 成 sUSDS,并 deposit 成 usUSDS 发送给用户。

攻击概述

在本次 Usual 攻击事件中,攻击者首先创建了恶意的 [USD0, sUSDS] 池子,然后利用 VaultRouter 合约的特权身份,将 1899838 USD0++ 以 1:1 的比例兑换成 USD0,并且在恶意池子中将 USD0 兑换为 sUSDS。随后攻击者通过移除流动性的方式获取所有的 USD0。最后通过 USD0USD0++ 市场将 1899838 USD0 兑换成 1943686 USD0++,兑换比例为 1 : 1.02,获利 43847 USD0++。

漏洞成因

  1. VaultRouter 合约可以将 USD0++ 以 1:1 的比例兑换成 USD0,与市场价 1 : 1.02 存在价差。
  2. VaultRouter 和 Augustus 合约均没有对传入的 swapData 进行检查,使得攻击者可以操控 USD0 swap sUSDS 这一步骤在全部流动性均为自己添加的、且价格失衡的恶意池子中进行。

相关链接

Alert:https://x.com/BlockSecTeam/status/1927607817378177316

攻击交易:https://app.blocksec.com/explorer/tx/eth/0x585d8be6a0b07ca2f94cfa1d7542f1a62b0d3af5fab7823cbcf69fb243f271f8

漏洞合约:

  1. VaultRouter:https://etherscan.io/address/0xe033cb1bb400c0983fa60ce62f8ecdf6a16fce09#code

  2. VaultRouter:https://etherscan.io/address/0xe033cb1bb400c0983fa60ce62f8ecdf6a16fce09#code

Trace 分析

Trace 概览

  1. 创建恶意的 [USD0, sUSDS] 池子,并向其添加了 10 wei 的 sUSDS
  2. 执行闪电贷
  3. 将获利资金兑换成 ETH

FlashLoan 分析

攻击者在闪电贷内执行了本次攻击,具体做了以下操作:

  1. VaultRouter.deposit()
  2. 移除 2.1 中创建的池子流动性
  3. USD0USD0++.exchange() USD0 -> USD0++
  4. USD0USD0++.exchange() USD0++ -> USD0
  5. Uniswap V3: Router.exactInput() USD0 -> ETH
  6. 归还闪电贷

VaultRouter.deposit()

  1. 首先通过 Usd0PP.unwrapWithCap() 函数将 USD0++ 按照 1:1 的比例换成 USD0

  1. VaultRouter 在攻击者创建的恶意池子中将 1899838 USD0 兑换成 5wei sUSDS

  1. 将兑换得到的 5wei sUSDS 通过 deposit() 质押成 usUSDS 并发送给攻击合约(不重要)

移除流动性

攻击者将 VaultRouter 在 2.2.1 中 swap 进去的 1899838 USD0 通过移除流动性的方式取出

exchange USD0 -> USD0++

攻击者通过 USD0USD0++.exchange() 将 1899838 USD0 兑换成 1943686 USD0++,兑换比例为 1 : 1.02,获利 43847 USD0++

exchange USD0++ -> USD0

攻击者随后又将获利部分的 43847 USD0++ 兑换成 42973 USD0

exactInput() USD0 -> ETH

42973 USD0 兑换成了 15 WETH

归还闪电贷

代码分析

Usd0PP 合约允许 VaultRouter 将 USD0++ 以 1:1 的比例兑换成 USD0

VaultRouter 没有对 augustus 使用的参数 data 进行检查和限制,这使得攻击者可以传入自己构造的恶意池子(相同币种不同费率),从而在 USD0 -> sUSDS 兑换完成后可以通过移除流动性的方法取回所有 USD0。

20250528 - Usual 攻击事件: 价差兑换与请君入瓮的更多相关文章

  1. 新浪微博XSS攻击事件

    http://blog.csdn.net/terryzero/article/details/6575078 6月28日20时14分左右开始,新浪微博出现了一次比较大的XSS攻击事件.大量用户自动发送 ...

  2. GitHub源码攻击事件

    黑客擦除了微软多达392个代码存储库,并提出勒索要求.此前,黑客攻击了包含微软在内的大批受害者的Git存储库,删除了所有源代码和最近提交的内容,并留下了支持比特币支付的赎金票据. 勒索信息如下: “要 ...

  3. 孟加拉央行SWIFT攻击事件恶意木马分析(转)

    第一章 分析概述 该恶意木马样本为运行于winodws平台上的PE文件(名称:evtdiag.exe).文件大小为64KB,编译时间是2016年2月5日. 经分析,该样本为定制的攻击SWIFT客户端程 ...

  4. 常见web攻击以及防御

    xss攻击: 跨站脚本攻击,攻击者在网页中嵌入恶意代码,当用户打开网页,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie,用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限 ...

  5. 漫画告诉你什么是DDoS攻击?

    本文作者:魏杰 文章转载自:绿盟科技博客,原文标题:看ADS如何治愈DDoS伤痛 根据<2015 H1绿盟科技DDoS威胁报告>指出,如今大流量网络攻击正逐渐呈现增长趋势,前不久锤子科技的 ...

  6. 利用WPS 2012/2013 0day针对中国政府部门的定向攻击

    今天早上,我们捕获到一个利用wps 2012/2013 0day针对中国政府部门的钓鱼邮件定向攻击事件. 邮件发件人以2014中国经济形势解析高层报告组委会 标题发出,附件为包含wps2012 0da ...

  7. 新浪微博的XSS漏洞攻击过程详解

    今天晚上(2011年6月28日),新浪微博出现了一次比较大的XSS攻击事件.大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建 党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉 ...

  8. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  9. 【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】

    原文:http://www.2cto.com/Article/201511/451757.html 1. 什么是webshell?     基于b/s架构的软件部署在Internet上,那么安全性是必 ...

  10. DDOS攻击原理及防护方法论

      从 07年的爱沙尼亚DDOS信息战,到今年广西南宁30个网吧遭受到DDOS勒索,再到新浪网遭受DDOS攻击无法提供对外服务500多分钟. DDOS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形 ...

随机推荐

  1. 【Ryan】: linux下安装ftp

    在 Linux 系统下安装 FTP 服务器可以使用多种软件,其中最常见的是 vsftpd(Very Secure FTP Daemon)和 ProFTPD(Professional FTP Daemo ...

  2. git 烂笔头

    git 烂笔头 触类旁通, 举一反三, 不求甚解, 欢迎补充 详细介绍 git connect github # 1. 本地配置, 姓名和邮箱 git config --global user.nam ...

  3. phpstorm、goland常用快捷键

    1) 文件操作相关的快捷键 快捷键 作用 Ctrl + E 打开最近浏览过的文件 Ctrl + N 快速打开某个 struct 结构体所在的文件 Ctrl + Shift + N 快速打开文件 Shi ...

  4. NumPy学习6

    今天学习 NumPy位运算 12, NumPy位运算NumPy 中提供了以下按位运算函数:numpy按位运算函数序号 函数 位运算符 描述说明1 bitwise_and & 计算数组元素之间的 ...

  5. oracle中的aix,Oracle在AIX上一些处理

    一.Oracle在aix上连接 1.su - oracle  //进入oracle用户: 2.export ORACLE_SID=house  //指定实例,多个实例的情况下: 3.sqlplus / ...

  6. BUUCTF---达芬奇的密码

    题目 达芬奇隐藏在蒙娜丽莎中的数字列:1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2 ...

  7. k8s集群创建之后coredns一直处于pending状态

    按照官网教程 master节点kubectl init, 每个从节点kubectl join之后, 在master节点执行 kubectl get pods -n kube-system,发现core ...

  8. 🎀Docker下Dubbo服务优雅上下线实现

    简介 在Docker容器环境中部署基于Dubbo的服务时,实现服务的优雅上下线是至关重要的.这通常涉及到两个关键步骤:首先,确保服务能够从注册中心摘除,停止接受新的请求:其次,等待所有正在处理的请求完 ...

  9. 微信公众号-自定义微信分享(vue)(JS-SDK)

    1.需求描述 日常公众号开发中,业务部门对于微信内置分享(右上角->分享到朋友等)效果不太满意,需要我们自定义相关分享效果 1.1微信默认分享效果展示 1.2通过自定义分享后效果展示 1.3微信 ...

  10. Eclipse 配置maven默认源及本地仓库

    1.window->Preferences 2.Maven-> User Setting 3.全局配置Global Settings/用户配置 User  Settings 修改为自己的配 ...