Celsius:慢雾:XCarnival NFT借贷协议漏洞分析_New Chance Token

原文作者:九九,慢雾安全团队

2022年6月27日,据慢雾区消息,XCarnival项目被曝出严重漏洞遭黑客攻击并盗走3,087个ETH。XCarnival是一个ETH链上的NFT借贷项目,目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:

相关信息

核心合约地址

P2Controller:

0x34ca24ddcdaf00105a3bf10ba5aae67953178b85

CBOEX交易平台荣获加拿大MSB合规牌照:据官方消息,CBOEX交易平台于03月17日(SGT)荣获加拿大MSB合规牌照,牌照自下发日起生效,已于今日拿到相关文件。该牌照是由FINTRAC (加拿大金融交易和报告分析中心)监管并颁发,允许CBOEX交易平台在加拿大境内合规开展加密资产相关服务。

CBOEX在获得美国MSB金融牌照、加拿大MSB金融牌照的基础上,将在全球持续推进合规布局,拥抱监管。[2021/3/24 19:12:50]

XNFT:

0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909

分析 | 加拿大道明银行:支付专业人士仍对加密货币保持警惕:据Coin Journal报道,加拿大道明银行(TD Babk)在2018年NACHA支付会议上进行的一项调查显示,尽管媒体对加密货币进行了大肆宣传,但支付方面的专业人士仍然对加密货币保持警惕,强烈反对其具有有效性。64%受访的金融专业人士表示,他们并未将加密货币视为合法的数字支付形式。4%的受访者认为围绕加密货币的争议是当今支付创新面临的最大挑战。[2018/8/23]

xToken:

0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663

加密货币初创公司Cblocks因美国加密货币监管缺乏明确性 决定迁往加拿大:据bitcoin.com消息,总部位于迈阿密的Cblocks最近一个月通过向加密货币新投资者出售包含五个随机加密货币的USB筹得了32000美元,该公司已宣布将迁往加拿大,其主要理由是美国加密货币监管缺乏明确性。该公司可以从中获得50美元的服务费,该公司在一个月内获得了3.2万美元。cblock的首席执行官兼联合创始人Auston Bunsen表示,尽管该公司的主要产品包括加密货币USB,但根据美国法律,该公司的业务可以被视为货币服务业务,这是因为公司发行的加密货币可能被认为是有价证券,而加拿大的监管政策则更加友好。[2018/5/8]

攻击者EOA地址

0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a

攻击合约地址

0xf70F691D30ce23786cfb3a1522CFD76D159AcA8d

0x234e4B5FeC50646D1D4868331F29368fa9286238

0x7B5A2F7cd1cc4eEf1a75d473e1210509C55265d8

0xc45876C90530cF0EE936c93FDc8991534F8A6962

在pledgeInternal函数中转入NFT并生成订单:

2.接着调用withdrawNFT函数提取出质押的NFT,其中首先判断该订单是否被清算状态,如果不是则判断该订单的状态是否为NFT还未被提取且借款金额为0,如果通过即可提取抵押的NFT。

3.以上为攻击前生成订单的准备操作,接着攻击者开始利用生成的订单直接调用xToken合约中的borrow函数进行借款。

在borrowInternal函数中,会外部调用controller合约中的borrowAllowed函数来判断是否可以借款。

可以看到在borrowAllowed函数会调用orderAllowed函数进行订单相关信息的判断,但是在这两个函数中均没有进行_order.isWithdraw状态的判断。因此攻击者可以利用之前生成的订单来调用XToken的borrow函数来借款,而因为抵押的NFT在之前已经被提出,故攻击者可以不用还款来实现获利。

攻击交易分析

此处仅展示其中一笔攻击交易的细节,其余攻击交易的手法均一致,不再赘述。

攻击前准备——生成订单的交易:

0x61a6a8936afab47a3f2750e1ea40ac63430a01dd4f53a933e1c25e737dd32b2f

1.首先攻击者将NFT转入攻击合约并进行授权,接着调用xNFT合约中的pledgeAndBorrow函数在进行抵押NFT生成订单并借款的操作,此处需要注意一点是该函数可以控制传入的xToken,攻击者传入了自己构造的xToken合约地址,并且让借款数量为0,目的是为了满足后续能成功提出NFT时的不被清算且负债为0的条件。

2.攻击者紧接着调用withdrawNFT函数来进行提取抵押的NFT:

正式攻击交易:

0x51cbfd46f21afb44da4fa971f220bd28a14530e1d5da5009cfbdfee012e57e35

攻击者调用xToken合约的borrow函数,传入之前生成的订单的orderID,重复了该操作22次,而因为NFT在准备阶段已经提走,估计无需还款以此来获利。

总结

本次漏洞的核心在于借款的时候,没有进行订单中NFT是否被提走的状态的判断,导致攻击者可以在把NFT提走之后再利用之前生成的订单来借款而无需还款,以此来获利。针对此类漏洞,慢雾安全团队建议在进行借款操作时应做好订单状态中是否已经提走抵押品的判断,避免再次出现此类问题。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

BNBETHE:市场动荡 USDT 会暴雷吗?_Old Bitcoin Erc

自5月以来,作为吃到美元“放水”红利的加密市场就没消停过:先是Luna的400亿美元金融帝国崩塌;然后ETH2.0全球最大去中心化节点Lido衍生品脱锚;美国最大加密银行Celsius陷入流动性.

[0:15ms0-3:642ms