背景

20250730 一名用户在授权并使用 AnyswapV4Router 兑换了 WETH 后,被攻击者通过 AnyswapV4Router 授权漏洞转移走 WETH,前后共计损失 401 WETH。

AnyswapV4Router 是一个支持跨链代币转移、链内代币交换和跨链交换的智能合约。攻击者通过 anySwapOutUnderlyingWithPermit 函数绕过了 WETH 不存在的 permit 检查,通过受损用户的授权转移走 WETH。

攻击者的身份可能是 MEV bot 或是白帽,本文暂时以“攻击者”称呼。

Trace 分析

用户一共进行了 3 次 swap 操作,每次 swap 结束后(在同一个区块或下一个区块)所获得的 WETH 就被转走了。

https://etherscan.io/address/0x4527106ae1a661a9d2ffc22575bacdaacb5e51e0#tokentxns

取其中一个 TX 进行分析:https://app.blocksec.com/explorer/tx/eth/0x75316e0aac282c9db5c57d2abe74e29e072466114afb8d70cd8b7115196fca57

  1. 攻击者调用 anySwapOutUnderlyingWithPermit 函数,传入攻击合约作为 token 参数。
  2. anySwapOutUnderlyingWithPermit 函数函数中调用 WETH.permit() 函数进行验证。(很奇怪啊,调用的是 permit() 函数,却打印了一个 Deposit 的 event。)
  3. 利用被盗用户对 AnyswapV4Router 合约的授权额度转移用户 WETH 资产。

代码分析

anySwapOutUnderlyingWithPermit 函数中, 由于 token 参数是攻击者设置的攻击合约,取出来的 _underlying 被设置为了 WETH。转移 _underlying 资产之前,会调用其 permit 函数检查授权情况。

但是 WETH 代币并没有实现 permit 函数,所以调用 WETH.permit() 函数时,会跳转到其 fallback 函数中。也就是为什么会在 permit() 函数的调用中打印了一个 Deposit 的 event。

后记

在需要使用一些 DeFi 或者工具合约时,难免需要对合约进行授权。通常出于方便或者节省 gas 考虑,用户会选择直接授权最大值。但是这也随之带来了安全隐患,如果被授权的合约存在可利用的漏洞,那么黑客可以通过授权合约转移你账户内的所有已经授权的资产。

而这次的受损用户正是在授权时对 AnyswapV4Router 合约(及其其他一系列的合约)给了最大的授权额度,这也间接导致了这次事件的发生。

从资金安全的考虑,用户在使用合约时需要谨慎设置授权金额。最好的习惯就是用多少授权多少(当然有利有弊,这样操作就需要每次多花点 gas 授权了)。提高安全意识,减少资金损失,本期安全小课堂就到此结束了。

20250730 - AnyswapV4Router 授权漏洞: 绕过了不存在的 permit 函数的更多相关文章

  1. redis 未授权漏洞利用直接登录服务器

    在没有查到杀手之前我是先把带宽&端口用iptables 做了限制这样能保证我能远程操作服务器才能查找原因 2 在各种netstat –ntlp  的查看下没有任何异常 在top 下查到了有异常 ...

  2. 通过格式化字符串漏洞绕过canary

    1.1    canary内存保护机制 1.1.1    canary工作原理 canary保护机制类似于/GS保护机制,是Linux下gcc编译器的安全保护机制之一,在栈中的结构如下图所示: 在函数 ...

  3. Hadoop Yarn REST API未授权漏洞利用挖矿分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 一.背景情况 5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未 ...

  4. php反序列化漏洞绕过魔术方法 __wakeup

    0x01 前言 前天学校的ctf比赛,有一道题是关于php反序列化漏洞绕过wakeup,最后跟着大佬们学到了一波姿势.. 0x02 原理 序列化与反序列化简单介绍 序列化:把复杂的数据类型压缩到一个字 ...

  5. Hadoop Yarn REST API未授权漏洞利用

    Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...

  6. PING命令执行漏洞-绕过空格

    目录 PING命令执行漏洞-绕过空格 这边介绍一下绕过空格的方法大概有以下几种 方法一:用变量拼接:我们发现源码中有一个$a变量可以覆盖 方法二:过滤bash?那就用sh.sh的大部分脚本都可以在ba ...

  7. Redis未授权漏洞利用方式

    总结一下redis未授权拿shell: redis-cli -h ip >info 查看系统类型 Windows: 1.找网站绝对路径 2.config set dir 绝对路径根路径 conf ...

  8. Redis未授权漏洞检测工具

    Redis未授权检测小工具 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ @Author: r0cky @Time: 20 ...

  9. redis未授权漏洞和主从复制rce漏洞利用

    未授权无需认证访问内部数据库. 利用计划任务反弹shell redis-cli -h 192.168.2.6 set x "\n* * * * * bash -i >& /de ...

  10. 服务器由于redis未授权漏洞被攻击

    昨天阿里云拦截到了一次异常登陆,改了密码后就没有管他, 今天阿里云给我发消息说我的服务器可能被黑客利用,存在恶意发包行为....... 不过我不打算只是单纯的重置系统,经过一系列的查找原因后,发现被攻 ...

随机推荐

  1. 用AI做了个动态下发微信群二维码应用

    微信群的二维码每周都要更新一次,比较麻烦.于是搞了个简单的上传/下发的 Web 应用. 下面是优化前后流程,虽然看似步骤少了一步,但大大节省了时间. 主要功能 常见类型图片上传,支持删除,提供外链访问 ...

  2. TVM:设计与架构

    本文档适用于想要了解 TVM 架构和/或积极开发项目的开发人员.页面组织如下: 示例编译流程概述了 TVM 将模型的高层描述转换为可部署模块所采取的步骤.要开始使用,请先阅读本节. 逻辑架构组件部分描 ...

  3. VS Code上配置python虚拟环境

    1.首先在Vs Code的terminal中输入: py -3 -m venv .venv .venv\scripts\activate 2.一般报错如下: 3.解决方法: 第一步:以管理员身份运行p ...

  4. 解决Mac IntellIJ Idea 卡顿问题,修改内存大小

      我们在工作中,经常会遇到因为IntellIJ Idea内存不足而卡顿的问题,可以通过两种方法调整idea的内存大小.我的IDEA版本是2021.2.   第一种调整内存的方法是 Change Me ...

  5. 万字长文: 仅花7天,利用AI编程神器Cursor 从0到1开发上线个人网站,保姆级教程!

    大家好,我是狂师. 今天我们来分享一下,如何利用AI编程帮助我们开发一款个人定制网站,保姆级教程,篇符较长,建议先保存收藏. 这篇文章,将从0到1,讲解如何利用AI编程开发并上线一款个人网站产品,包括 ...

  6. Web前端入门第 62 问:JavaScript 循环结构注意事项

    HELLO,这里是大熊的前端开发笔记. 循环作为 算法与数据结构 中的基石,JS 与其他编程语言一样,都提供了多种循环结构用于处理数据. for 循环 事物的开端往往都是从最常用的开始,循环结构咱们从 ...

  7. python爬虫基本学习——函数

    函数 概念:编写程序时,需要某块代码多次,为了提高编写效率和代码的重用,把具有独立功能的代码块组织为一个小模块,即函数. 代码练习 ''' #函数的定义 def printinfo(): print( ...

  8. Element-Plus官网Header类像素效果的实现

      Element-Plus官网Header类像素效果 一.前言 在使用Element-Plus时,发现有两个很有趣的效果,一个是header的背景模糊效果,另一个是黑夜模式切换动画,在此我们先来研究 ...

  9. Java源码分析系列笔记-1.JMM模型之先谈硬件

    目录 1. 冯诺依曼体系结构 2. 高速缓存 2.1. 工作原理 2.2. 存储器层次结构 2.3. 局部性原理 3. 缓存一致性/可见性问题 3.1. 如何解决 3.1.1. 总线加锁 3.1.2. ...

  10. DataEase 远程代码执行漏洞分析

    漏洞描述 DataEase 是一款开源的数据可视化分析工具,旨在帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化. 漏洞影响版本: DataEase < 2.10.10 漏洞详情: ...