原文作者:九九,慢雾安全团队
2022年6月27日,据慢雾区消息,XCarnival项目被曝出严重漏洞遭黑客攻击并盗走3,087个ETH。XCarnival是一个ETH链上的NFT借贷项目,目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
核心合约地址
P2Controller:
0x34ca24ddcdaf00105a3bf10ba5aae67953178b85
数据:4,000枚BTC从未知钱包转移到Bitfinex:金色财经报道,Whale Alert数据显示,4,000枚BTC(104,057,443 美元)从未知钱包转移到Bitfinex。[2023/9/1 13:11:34]
XNFT:
0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909
xToken:
0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663
攻击者EOA地址
韩国游戏巨头Nexon计划使用《冒险岛》手游构建NFT生态系统:6月8日消息,韩国游戏巨头Nexon首席运营官Kang Dae-hyun表示,Nexon正在使用手游《MapleStory(冒险岛)》构建NFT生态系统。
Kang Dae-hyun称,冒险岛宇宙将是冒险岛NFT的共享空间,我们期待它成为游戏和区块链世??界融合的元宇宙进化的一部分。构建一个可以融合的生态系统这就是Nexon对进化的元宇宙的看法。这意味着用户将可以在 《MapleStory(冒险岛)》中直接创建、购买或出售NFT。(TechM)[2022/6/8 4:09:58]
0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a
声音 | 纽约总检察长办公室:不应让Bitfinex阻碍我们调查:纽约总检察长(NYAG)办公室表示,Bitfinex应做好准备在暂缓期结束后向其提供文件。在9月30日提交的由高级执法顾问John Castiglione撰写的最新披露信中,NYAG办公室概述了Bitfinex和Tether以及其他关联实体如何未出示与涉嫌掩盖有关公司间贷款的商业秘密的任何文件。此外,NYAG办公室称,Bitfinex通过从Tether的储备中借钱来弥补差额。高级执法顾问Castiglione在信中写道,上诉将把案件拖延几个月,在此期间将不会产生任何文件。如果法官不命令该公司出示这些文件,那么他们很可能会继续拖延。他补充说,通过命令被告立即整理材料,法院将确保程序有序,并有助于完成NYAG办公室的调查。(coindesk)[2019/10/3]
攻击合约地址
动态 | 713.2万枚USDT转入Huobi交易所:北京时间10月16日20:19,713.2万枚USDT从0xdac2开头地址转入Huobi交易所,按当前价格计算,价值约717.2万美元,交易哈希为:0x831a113ed03d9c512feb492112cba6345eca445a6c73967625641e9bcedf4035。[2019/10/16]
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提走之后再利用之前生成的订单来借款而无需还款,以此来获利。针对此类漏洞,慢雾安全团队建议在进行借款操作时应做好订单状态中是否已经提走抵押品的判断,避免再次出现此类问题。
1、BTC/USDT最大杠杆倍数100倍2、ETH/USDT最大杠杆倍数100倍https://dcoindoc.zendesk.
金色财经报道,Nexo联合创始人兼管理合伙人AntoniTrenchev表示,Nexo不会遭遇与Celsius和VoyagerDigital类似的流动性危机,Nexo和他们完全不同.
DearValuedUsers,HuobiGlobalisscheduledtolistDEP(DEAPcoin)onJune30.
MicroStrategyInc.的首席执行官表示,加密货币对短期投资者来说是一种高风险、高波动性的资产。但对于拥有10年期限的人来说,这是一种低风险的价值储存手段.
熊市是充满机会市场。随着估值的压缩和牛市泡沫的破灭,那些具有强大基本面和专业团队能度过加密货币冬天的项目将会首先生存,然后茁壮成长,这为投资者提供了一个巨大的机会.
DearValuedUsers,CandyDropislaunchingPRQ&JUMBO&GARIonJune26.