月亮链 月亮链
Ctrl+D收藏月亮链
首页 > LTC > 正文

DEX:0x协议漏洞原理剖析:恶意挂单可扰乱正常交易秩序_去中心化交易所前三

作者:

时间:1900/1/1 0:00:00

昨天,去中心化交易所协议0x项目方称其发现严重安全漏洞。PeckShield安全人员跟进分析发现,0xExchange合约在校验订单签名时存在缺陷,导致攻击者可以进行恶意挂单,进而将用户的数字资产低价卖出,扰乱正常的交易秩序。所幸项目方及时发现并修复问题,截至目前,尚未有真实攻击发生,并没有产生数字资产损失。

背景

北京时间2019年07月13日,去中心化交易所0x协议项目方称其发现严重安全漏洞,并紧急关闭了0xExchangev2.0合约,随后部署了修复后的合约。受此影响,基于0x协议的交易所及钱包,包括RadarRelay,Tokenlon,StarBit等紧急暂停了相关交易服务。

PeckShield安全人员跟进分析发现,0xExchange合约在校验订单签名时存在缺陷,导致攻击者可以进行恶意挂单,进而将用户的数字资产低价卖出,扰乱正常的交易秩序。

数据:Vitalik Buterin过去8天通过地址0x556向Bitstamp转入1,602枚ETH:9月3日消息,据Spot On Chain监测,Vitalik Buterin于20小时前将999枚ETH(163万美元)从地址0xD04转移至地址0x556。据了解,Vitalik似乎在过去8天内通过地址0x556向Bitstamp转入1,602枚ETH(268万美元),并出售100枚ETH获得17.3万美元。[2023/9/3 13:14:23]

0x协议简介

0x协议是一个基于以太坊的开放协议,实现链上资产的点对点交易。它期望在以太坊上创建一种标准协议,使得任何人能够基于此协议运行去中心化交易所,实现以太坊上的代币之间的交易。0x协议上的交易特点是链下订单撮合,链上结算,其中为用户交易提供订单服务的参与者称为中继者。0x项目发行了自己的代币ZRX,一方面作为去中心化治理投票权的证明,同时也被作为交易服务费,用于建立在0x协议之上的中继者提供服务的收益。

meme代币Pond0X发行混乱导致投资者损失数百万美元:金色财经报道,meme代币Pond0x(PNDX)的推出已给投资者带来了数百万美元的损失。来自Maestrobots交易应用程序的数据显示,该代币由Not Larva Labs匿名创始人“Pauly”于 7月28日推出,价格一度达到0.36美元,然后在五分钟内跌至接近零。一些用户通过Maestrobots或Team Unibot等机器人交易应用程序在Uniswap上购买了代币,从而提高了其价格。与此同时,其他用户使用网络应用程序铸造代币并将其出售到市场上以获取利润。

根据memecoin持有者RuneCrypto的一份报告,Pond0x开发团队涉嫌对代币的发行处理不当,导致他们损失高达 220 万美元,另一位用户报告说,PNDX 的转账功能有缺陷,允许用户从任何其他用户转账。[2023/7/29 16:05:43]

0x协议受到不少去中心化交易所和钱包的青睐,从Etherscan的DEX过去七天交易份额的饼图中能看到,排名靠前的RadarRelay和Tokenlon都是基于0x协议:

0xscope:GenesisTrading及其相关的实体过去两周套现价值5亿美元USDC:11月29日消息,0xscope研究员Bobie发推表示,过去两周,GenesisTrading及其相关的实体套现价值5亿美元USDC;此外,孙宇晨套现了价值1.72亿美元USDC;Alameda相关实体套现了价值6亿美元USDC。[2022/11/29 21:09:49]

另外,从DAppTotal的DEX24小时交易额排名中也能看到它们的排名:

由于Ethereum平台上大量的DEX都使用了0x协议,而作为最根本的TokenTranfer主合约出问题,这对于整个DEX领域来说,都是比较重大的事件。

此前被传的0x99开头地址并非三箭资本钱包,或系隆领投资地址:6月15日消息,据KOL匿名博士,此前被传AAVE接近清算价格的地址0x997f0a825f24108f91218854e29936d546a1f532386949f2d8488735f77547d5并非三箭资本,经过链上查询,系美图创始人蔡文胜创立的隆领资本钱包地址。[2022/6/15 4:29:30]

漏洞原理分析

本次漏洞共涉及isValidWalletSignature和isValidValidatorSignature两个相似的漏洞,由于两者出问题的代码是相似的,本文只以前者为例说明。

isValidWalletSignature(bytes32,address,bytes)函数用于验证给定的Wallet合约所定义的签名信息与给定的签名是否一致,用于确保Order是由正确的Maker/Taker执行的交易。但是0xExchange合约在验证的过程中,存在着比较严重的问题:

sudoswap发布漏洞事件分析:与0x合约无关,原因在于transferFrom函数漏洞:12月15日消息,NFT交易平台sudoswap针对昨日的漏洞事件发布故障分析,称此次漏洞事件与0x合约无关,原因在于EtherOrcNFT合约未完全遵守ERC721标准,在调用transferFrom(addressfrom,addressto,uint256id)函数时,from参数对应地址不会被系统检查是否拥有指定的NFTid,而该漏洞可被部分机器人程序利用。sudoswap表示,部分用户尝试将自己的EtherOrcNFT换成WETH时遭到机器人程序利用函数漏洞领跑,未能及时收到WETH,sudoswap已其进行补偿。同时,该事件与0x没有关联,昨日对0x合约的停用实属误会。

此前报道,北京时间12月14日12:30,NFT交易平台sudoswap宣布发现漏洞,称用户在sudoswap调用0x交易平台的swap功能时可能出现问题。对此,sudoswap暂时将与0x相关的swap功能停用,并提醒用户解除对0x平台的合约授权。[2021/12/15 7:41:14]

上图是这一函数的全部逻辑,分为两部分:

组装签名具体字段为ABI编码格式;根据组装的ABI编码内容计算签名值正确性。其中,第2步的逻辑,在0xv2合约代码中是用汇编实现的:

引入cdStart指针,指向calldata中对应的位置;对WalletAddress调用staticcallOpCode计算签名正确性,注意观察代码,其中的input和output都为cdStart这一指针,即复用input/output的内存;检验步骤2.2中的结果是否正确。WalletAddress为合约的前提下,这样子的流程没有问题。先来看下EVM中合约的执行流程是怎样的,PeckShield安全人员查阅EVM源码的时候发现:

当被调用的合约没有code,也就是EOA账号的情况下,什么都没有的执行,直接返回。因此,对应到isValidWalletSignature(bytes32,address,bytes)函数来说,其中的cdStart所对应的内存内容在调用staticcall前后并没有变化,而后面在判断签名是否正确的isValid取值的时候,也就取到了错误的值。

用户通过fillOrder(Order,uint256,bytes)函数完成Token买卖,PeckShield安全人员发现,这一函数的三个参数可以由用户自由配置:

分别为:

代表订单信息的Order类型;用户为此订单付出的Token数量;Order对应的签名信息signature其中比较关键的是Order及对应的signature信息的一致性正是通过上面的isValidWalletSignature类函数校验,因此,当攻击者精心构造signature为SignatureTypeWallet时,可『跳过』签名合法性检查,从而使得用户在不经意之间被恶意挂单,从而被攻击者顺利吃单,由于这一订单信息是由攻击者直接传入合约的,因此这一订单信息在线下的中继者也无法查询。

漏洞影响分析

基于上述分析发现,曾在0x协议Exchange上做过授权转账的普通用户帐号都将受到影响:

攻击者可伪造用户挂单,低价获得用户代币。

鉴于此安全漏洞的危害性,PeckShield安全人员发现0x项目方在漏洞被发现的时候先紧急关闭了0xExchangev2.0合约的Tokentransfer功能,将所有的ERC20、ERC721、以及MultiAsset的Transfer功能全部下线;随后部署了修复后的合约,同时告知用户及使用了0xExchange的所有DEX及Relayer,相关的迁移升级工作正在进行中。受此影响,基于0x协议的交易所及钱包,包括RadarRelay,Tokenlon,StarBit等紧急暂停了交易服务。

PeckShield安全人员通过漏洞特性分析链上数据发现,从0xExchange2018-09上线至今,并没有因此安全漏洞造成的用户直接资产损失。

对于使用了0x的DEX及钱包来说,当前的阶段需要暂停交易服务,如无法暂停交易服务的话,可将对应的0xExchange合约地址变更为当前已经修复的合约地址。

结语

0x协议本次出现漏洞的合约代码,主要是内联汇编代码编写签名验证功能出现的问题,直接编写汇编代码虽然在编译器无法优化合约代码的情况下非常有用,可控性更强且能提高执行效率,减少Gas消耗,但是编写Solidity汇编代码需要对EVM运行机制有非常熟悉的理解,不然EVM的某些特性可能导致编写的合约无法正常运行,同时也缺少了Solidity提供的多种安全机制。

PeckShield安全人员在此提醒广大开发者及时排查合约的相关代码,避免类似问题可能造成的安全风险,对于DEX等DeFi类项目,项目方在上线前需要找有资质的安全公司审计安全风险。

标签:DEX去中心化交易所中心化交易所DEX币DEX价格去中心化交易所违法吗LFG去中心化交易所去中心化交易所英文单词去中心化交易所算证券么dex去中心化交易所价格计算器去中心化交易所前三

LTC热门资讯
:“十一”票房战收官,50亿元票房盛宴背后,影视股忙着跳水_

作者|市界杨丽雪 编辑|朗明 这个“十一”,因为有了建国70年的大阅兵和三部“献礼片”,注定不一般.

1900/1/1 0:00:00
哥斯拉:直男们,别再说mini是女人车了,它是一种情趣_福布斯币是什么币ESP价格

背景:今年是mini品牌六十周年,前几天刚好第1000万辆出厂。如果你问一个大男人,提什么车最有面子?我!绝对轮不到minicooper.

1900/1/1 0:00:00
AEX:币圈实干家已死?AEX 37度第一个说不_AEX价格

素雅的蓝灰色衬衫、运动鞋、黑色背包,一副框架眼镜,180挺拔的个头,他常常是休闲的学院风穿搭;尽管工作7年有余,却丝毫未见社会给他带来的世故,工作中的雷厉风行,强执行力.

1900/1/1 0:00:00
AIN:大阪时尚聚集地——梅田逛吃指南_FIVEAIN价格

旅日多次的首次大阪行。 位于大阪北区的梅田就是JR大阪站这片区域,还有地铁梅田站、阪神梅田站、阪急梅田站,交通发达便捷。比起其他区域,梅田有更多時尚潮流服饰百货商场.

1900/1/1 0:00:00
:自考排前十的热门专业难度及就业前景介绍,看看你的专业排第几_

今天为大家汇总了排名前十的自考热门专业,帮助大家从考试难度和就业前景进行了解。 1、行政管理 主修课程 专科|学概论、现代管理学、行政管理学、人力资源管理、市政学、法学概论.

1900/1/1 0:00:00
DNA:多动症孩子如果能被正确引导,同样能够走上人生巅峰_新大陆DNA价格

前段时间一个朋友问我,说他们家孩子不知道是不是多动症,没有办法集中精神去做一件事,并且不时的眨眼睛,面部的肌肉也会跟着抽动一下.

1900/1/1 0:00:00