区块见闻 区块见闻
Ctrl+D收藏区块见闻

SHI:0x协议漏洞原理剖析:恶意挂单可扰乱正常交易秩序_0x协议

作者:

时间:

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

背景

北京时间2019年07月13日,去中心化交易所0x协议项目方称其发现严重安全漏洞,并紧急关闭了0xExchangev2.0合约,随后部署了修复后的合约。受此影响,基于0x协议的交易所及钱包,包括RadarRelay,Tokenlon,StarBit等紧急暂停了相关交易服务。PeckShield安全人员跟进分析发现,0xExchange合约在校验订单签名时存在缺陷,导致攻击者可以进行恶意挂单,进而将用户的数字资产低价卖出,扰乱正常的交易秩序。0x协议简介

0x73b地址将8052万SAND转入CEX:金色财经报道,据链上分析师余烬监测,6 小时前,0x73b 地址将 8052 万 SAND(3244万美元) 转入 CEX,其中:

? 7000万SAND转入Binance

? 1000万SAND转入OKX

? 52.9万SAND转入Gemini

0x73b地址的SAND全部来源于The Sandbox: Genesis地址的解锁分配,最近一次是在7天前从Genesis接收到6000万SAND。[2023/8/11 16:19:31]

0x协议是一个基于以太坊的开放协议,实现链上资产的点对点交易。它期望在以太坊上创建一种标准协议,使得任何人能够基于此协议运行去中心化交易所,实现以太坊上的代币之间的交易。0x协议上的交易特点是链下订单撮合,链上结算,其中为用户交易提供订单服务的参与者称为中继者。0x项目发行了自己的代币ZRX,一方面作为去中心化治理投票权的证明,同时也被作为交易服务费,用于建立在0x协议之上的中继者提供服务的收益。0x协议受到不少去中心化交易所和钱包的青睐,从Etherscan的DEX过去七天交易份额的饼图中能看到,排名靠前的RadarRelay和Tokenlon都是基于0x协议:

Blur以太坊销毁量突破1.7万枚ETH,超越0x协议:金色财经报道,据ultrasound.money最新数据显示,NFT交易聚合市场Blur以太坊销毁量已突破1.7万枚ETH,本文撰写时达到17,111.59 ETH,超越0x协议,后者当前以太坊链上ETH销毁量为17,098.86 ETH。[2023/6/25 21:58:01]

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

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

本次漏洞共涉及isValidWalletSignature()和isValidValidatorSignature()两个相似的漏洞,由于两者出问题的代码是相似的,本文只以前者为例说明。isValidWalletSignature(bytes32,address,bytes)函数用于验证给定的Wallet合约所定义的签名信息与给定的签名是否一致,用于确保Order是由正确的Maker/Taker执行的交易。但是0xExchange合约在验证的过程中,存在着比较严重的问题:

EOA地址0x60f7已将300枚ETH转至Tornado Cash:金色财经消息,据CertiK监测,EOA地址0x60f7已将300枚ETH(约56.1万美金)转至Tornado Cash。[2023/4/12 13:59:05]

上图是这一函数的全部逻辑,分为两部分:组装签名具体字段为ABI编码格式;根据组装的ABI编码内容计算签名值正确性。其中,第2步的逻辑,在0xv2合约代码中是用汇编实现的:引入cdStart指针,指向calldata中对应的位置;对WalletAddress调用staticcall()OpCode计算签名正确性,注意观察代码,其中的input和output都为cdStart这一指针,即复用input/output的内存;检验步骤2.2中的结果是否正确。WalletAddress为合约的前提下,这样子的流程没有问题。先来看下EVM中合约的执行流程是怎样的,PeckShield安全人员查阅EVM源码的时候发现:

0xScope:数个协议的数百万美元资产在Euler协议中滞留:3月13日消息,据0xScope Protocol监测,部分项目及巨鲸地址在Euler Finance攻击事件中被波及,具体包括:

- Angle Protocol在Euler中有1760万美元USDC;

- Idle DAO在Euler中有460万美元USDC;

- SwissBorg在Euler中存入了6357枚ETH和170万枚USDT,攻击事件发生后,SwissBorg迅速借出了4752枚cbETH以减少损失,但仍滞留了约426万美元资产;

- 0x28a5开头巨鲸地址与czsamsun.eth分别在协议中滞留了400万美元和274万美元资产。[2023/3/13 13:00:49]

当被调用的合约没有code,也就是EOA账号的情况下,什么都没有的执行,直接返回。因此,对应到isValidWalletSignature(bytes32,address,bytes)函数来说,其中的cdStart所对应的内存内容在调用staticcall()前后并没有变化,而后面在判断签名是否正确的isValid取值的时候,也就取到了错误的值。用户通过fillOrder(Order,uint256,bytes)函数完成Token买卖,PeckShield安全人员发现,这一函数的三个参数可以由用户自由配置:

Larry Cermak谈“聘请0xMaki领导Sushi”:预先支付50万SUSHI实在太多了:The Block研究总监、Sushiswap九名多签见证人之一Larry Cermak发推就(Adam Cochran提议的)“聘请Sushiswap联合创始人0xMaki全职领导项目”的提案表示:我完全支持给予创始人更多奖励,但预先支付50万SUSHI代币实在太多了,我不会支持这个提案,我建议降低预先支付的金额,将更多资金改为长期支付。

注:此前,Cinneamhain Venutres合伙人Adam Cochran提交了一项提案投票,旨在聘请0xMaki来领导该项目。该提案指出,如果聘请0xMaki全职领导项目,将会:

1. 预先支付50万SUSHI代币,并在锁定一份50万SUSHI币的创始人捐赠;

2. 如果两年后继续为SUSHI工作还会支付额外50万SUSHI币报酬。[2020/9/12]

分别为:代表订单信息的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类项目,项目方在上线前需要找有资质的安全公司审计安全风险。

标签:SHI0x协议ETHALLSHIBABNB价格steth币最新价格Cryptomall

以太坊价格今日行情热门资讯
加密货币:美国要在遗弃的比特币中捞钱,交易所或将面临诉讼?_加密货币是什么意思啊

你曾经有没有想过,那些被遗忘或无人认领的财产都去了哪里?在美国,每年都有数百万人忘记了他们的资金账户,或者是遗忘了他们应得的财产.

LET:V 神打算让以太坊联姻 BCH ,并正在计划增强隐私性,ETH 侧链和匿名币会颤抖吗?_clv币是什么币

编者按:本文来自白话区块链,作者:五火球教主,Odaily星球日报经授权转载。ETH2.0的难产似乎已经成为圈内一种“共识”,不过想想其实是好事.

ETH:新韩银行考虑停止向加密交易所提供虚拟账户_BCH

新韩银行可能会停止为加密交易所Korbit提供发行虚拟帐户。这是以不延长到期的服务合同期限的方式进行的.

ETH:主流交流所杠杆交易全对比_KINGSHIB币

编者按:本文来自区块方舟,作者:大副,Odaily星球日报经授权发布。很早之前申请到了币安的杠杆交易资格,但是懒癌无救,等到币安的杠杆交易全面开放了,才去看了下.

VITA:BCH只配做以太坊的数据层?“V神”真打算这么干!_vita币官网

Odaily星球日报译者|Moni就目前而言,以太坊仍然是全球最大的去中心化应用程序构建和部署平台,开发人员也一直在努力尝试各种不同方法来有效扩展这个智能合约平台.

TER:一文读懂什么是比特币期货_以太坊

编者按:本文来自Unitimes,原标题:《不知道比特币期货是什么?》作者:Jhonny,Odaily星球日报经授权转载。什么是期货?通常,当你买东西的时候,交易会立即“结算”.