20250730 - AnyswapV4Router 授权漏洞: 绕过了不存在的 permit 函数
背景
20250730 一名用户在授权并使用 AnyswapV4Router 兑换了 WETH 后,被攻击者通过 AnyswapV4Router 授权漏洞转移走 WETH,前后共计损失 401 WETH。
AnyswapV4Router 是一个支持跨链代币转移、链内代币交换和跨链交换的智能合约。攻击者通过 anySwapOutUnderlyingWithPermit 函数绕过了 WETH 不存在的 permit 检查,通过受损用户的授权转移走 WETH。
攻击者的身份可能是 MEV bot 或是白帽,本文暂时以“攻击者”称呼。
- 授权交易:https://www.oklink.com/zh-hans/ethereum/tx/0x2653c822153e711e34edf459eeb26e4f36ceb391f6937674726b67e3d954dba5
- 攻击交易:
- 0x75316e0aac282c9db5c57d2abe74e29e072466114afb8d70cd8b7115196fca57
- 0x0abafd9b7691a0b06bc02e6274f5a1b6925c2d97c77f4702ba9d2761d0bd4563
- 0xae79fdcfd7c36ed654d11b352b495340bd3cc47d0849c35ac6ffa1e4859098ec
Trace 分析
用户一共进行了 3 次 swap 操作,每次 swap 结束后(在同一个区块或下一个区块)所获得的 WETH 就被转走了。
https://etherscan.io/address/0x4527106ae1a661a9d2ffc22575bacdaacb5e51e0#tokentxns

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

- 攻击者调用
anySwapOutUnderlyingWithPermit函数,传入攻击合约作为token参数。 - 在
anySwapOutUnderlyingWithPermit函数函数中调用WETH.permit()函数进行验证。(很奇怪啊,调用的是permit()函数,却打印了一个Deposit的 event。) - 利用被盗用户对
AnyswapV4Router合约的授权额度转移用户 WETH 资产。
代码分析
在 anySwapOutUnderlyingWithPermit 函数中, 由于 token 参数是攻击者设置的攻击合约,取出来的 _underlying 被设置为了 WETH。转移 _underlying 资产之前,会调用其 permit 函数检查授权情况。

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

后记
在需要使用一些 DeFi 或者工具合约时,难免需要对合约进行授权。通常出于方便或者节省 gas 考虑,用户会选择直接授权最大值。但是这也随之带来了安全隐患,如果被授权的合约存在可利用的漏洞,那么黑客可以通过授权合约转移你账户内的所有已经授权的资产。
而这次的受损用户正是在授权时对 AnyswapV4Router 合约(及其其他一系列的合约)给了最大的授权额度,这也间接导致了这次事件的发生。

从资金安全的考虑,用户在使用合约时需要谨慎设置授权金额。最好的习惯就是用多少授权多少(当然有利有弊,这样操作就需要每次多花点 gas 授权了)。提高安全意识,减少资金损失,本期安全小课堂就到此结束了。
20250730 - AnyswapV4Router 授权漏洞: 绕过了不存在的 permit 函数的更多相关文章
- redis 未授权漏洞利用直接登录服务器
在没有查到杀手之前我是先把带宽&端口用iptables 做了限制这样能保证我能远程操作服务器才能查找原因 2 在各种netstat –ntlp 的查看下没有任何异常 在top 下查到了有异常 ...
- 通过格式化字符串漏洞绕过canary
1.1 canary内存保护机制 1.1.1 canary工作原理 canary保护机制类似于/GS保护机制,是Linux下gcc编译器的安全保护机制之一,在栈中的结构如下图所示: 在函数 ...
- Hadoop Yarn REST API未授权漏洞利用挖矿分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 一.背景情况 5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未 ...
- php反序列化漏洞绕过魔术方法 __wakeup
0x01 前言 前天学校的ctf比赛,有一道题是关于php反序列化漏洞绕过wakeup,最后跟着大佬们学到了一波姿势.. 0x02 原理 序列化与反序列化简单介绍 序列化:把复杂的数据类型压缩到一个字 ...
- Hadoop Yarn REST API未授权漏洞利用
Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...
- PING命令执行漏洞-绕过空格
目录 PING命令执行漏洞-绕过空格 这边介绍一下绕过空格的方法大概有以下几种 方法一:用变量拼接:我们发现源码中有一个$a变量可以覆盖 方法二:过滤bash?那就用sh.sh的大部分脚本都可以在ba ...
- Redis未授权漏洞利用方式
总结一下redis未授权拿shell: redis-cli -h ip >info 查看系统类型 Windows: 1.找网站绝对路径 2.config set dir 绝对路径根路径 conf ...
- Redis未授权漏洞检测工具
Redis未授权检测小工具 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ @Author: r0cky @Time: 20 ...
- redis未授权漏洞和主从复制rce漏洞利用
未授权无需认证访问内部数据库. 利用计划任务反弹shell redis-cli -h 192.168.2.6 set x "\n* * * * * bash -i >& /de ...
- 服务器由于redis未授权漏洞被攻击
昨天阿里云拦截到了一次异常登陆,改了密码后就没有管他, 今天阿里云给我发消息说我的服务器可能被黑客利用,存在恶意发包行为....... 不过我不打算只是单纯的重置系统,经过一系列的查找原因后,发现被攻 ...
随机推荐
- 用AI做了个动态下发微信群二维码应用
微信群的二维码每周都要更新一次,比较麻烦.于是搞了个简单的上传/下发的 Web 应用. 下面是优化前后流程,虽然看似步骤少了一步,但大大节省了时间. 主要功能 常见类型图片上传,支持删除,提供外链访问 ...
- TVM:设计与架构
本文档适用于想要了解 TVM 架构和/或积极开发项目的开发人员.页面组织如下: 示例编译流程概述了 TVM 将模型的高层描述转换为可部署模块所采取的步骤.要开始使用,请先阅读本节. 逻辑架构组件部分描 ...
- VS Code上配置python虚拟环境
1.首先在Vs Code的terminal中输入: py -3 -m venv .venv .venv\scripts\activate 2.一般报错如下: 3.解决方法: 第一步:以管理员身份运行p ...
- 解决Mac IntellIJ Idea 卡顿问题,修改内存大小
我们在工作中,经常会遇到因为IntellIJ Idea内存不足而卡顿的问题,可以通过两种方法调整idea的内存大小.我的IDEA版本是2021.2. 第一种调整内存的方法是 Change Me ...
- 万字长文: 仅花7天,利用AI编程神器Cursor 从0到1开发上线个人网站,保姆级教程!
大家好,我是狂师. 今天我们来分享一下,如何利用AI编程帮助我们开发一款个人定制网站,保姆级教程,篇符较长,建议先保存收藏. 这篇文章,将从0到1,讲解如何利用AI编程开发并上线一款个人网站产品,包括 ...
- Web前端入门第 62 问:JavaScript 循环结构注意事项
HELLO,这里是大熊的前端开发笔记. 循环作为 算法与数据结构 中的基石,JS 与其他编程语言一样,都提供了多种循环结构用于处理数据. for 循环 事物的开端往往都是从最常用的开始,循环结构咱们从 ...
- python爬虫基本学习——函数
函数 概念:编写程序时,需要某块代码多次,为了提高编写效率和代码的重用,把具有独立功能的代码块组织为一个小模块,即函数. 代码练习 ''' #函数的定义 def printinfo(): print( ...
- Element-Plus官网Header类像素效果的实现
Element-Plus官网Header类像素效果 一.前言 在使用Element-Plus时,发现有两个很有趣的效果,一个是header的背景模糊效果,另一个是黑夜模式切换动画,在此我们先来研究 ...
- Java源码分析系列笔记-1.JMM模型之先谈硬件
目录 1. 冯诺依曼体系结构 2. 高速缓存 2.1. 工作原理 2.2. 存储器层次结构 2.3. 局部性原理 3. 缓存一致性/可见性问题 3.1. 如何解决 3.1.1. 总线加锁 3.1.2. ...
- DataEase 远程代码执行漏洞分析
漏洞描述 DataEase 是一款开源的数据可视化分析工具,旨在帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化. 漏洞影响版本: DataEase < 2.10.10 漏洞详情: ...