宇宙链 宇宙链
Ctrl+D收藏宇宙链

慢雾:XCarnival NFT借贷协议漏洞分析

作者:

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

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

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

相关信息

核心合约地址

P2Controller:

0x34ca24ddcdaf00105a3bf10ba5aae67953178b85

XNFT:

0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909

xToken:

0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663

攻击者EOA地址

0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a

FSA:加密资产交易合法化是荒谬的:金色财经报道,丹麦金融监管局(FSA)要求投资银行盛宝处置其持有的加密货币。与此同时,FSA声明引用了丹麦《金融商业法》第24条,其中规定盛宝银行的加密货币活动“不属于金融机构的合法业务范围”。根据声明,FSA认为,加密资产交易合法化是荒谬的,因为这可能会导致投资者对金融体系的不信任。此外,英国金融服务管理局还排除了任何丹麦金融机构参与加密货币交易的可能性,直到此事更加明确为止,并表示,盛宝银行为其自己的账户进行加密资产交易是为了对冲与提供其他金融产品相关的风险。然而,这并没有改变丹麦金融机构不允许该活动本身的事实。[2023/7/7 22:22:26]

攻击合约地址

0xf70F691D30ce23786cfb3a1522CFD76D159AcA8d

0x234e4B5FeC50646D1D4868331F29368fa9286238

0x7B5A2F7cd1cc4eEf1a75d473e1210509C55265d8

Binance:将致力于启用比特币闪电网络提款,以缓解提款拥堵现象:5月8日消息,Binance表示目前待处理的交易正在通过用更高的交易费用来进行处理。为防止将来再次发生类似情况,Binance对费用进行了调整。Binance将继续监控链上活动,并在需要时进行相应调整。此外,Binance团队将致力于启用比特币闪电网络提款,以缓解提款拥堵现象。[2023/5/8 14:49:42]

0xc45876C90530cF0EE936c93FDc8991534F8A6962

漏洞核心点分析

1.攻击者通过XNFT合约中的pledgeAndBorrow函数来进行抵押NFT并借出xToken。

阿莱恩斯西部银行涨53% PacWest Bancorp触发熔断:金色财经报道,阿莱恩斯西部银行涨53%,触发停牌。PacWest Bancorp触发熔断,涨幅64.31%。[2023/3/14 13:03:52]

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

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

知情人士:Genesis已披露的债务总额达18亿美元,或将继续增长:12月5日消息,据消息人士透露,除了此前对Gemini达9亿美元的债务外,加密货币经纪公司Genesis还有另一组由律师事务所Proskauer Rose代表的一批债权人,债务总额也达到9亿美元,导致其目前已披露的债务总额达18亿美元,且该数字或将继续增长。

此前报道,Genesis及其母公司Digital Currency Group(DCG)对Gemini的债务达9亿美元。Gemini已经成立债权人委员会,以收回来自Genesis及其母公司DCG的资金。(CoinDesk)[2022/12/5 21:23:05]

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

加拿大和巴西的加密货币ETF大幅下跌:金色财经报道,加拿大和巴西的加密货币 ETF 在周一大幅下跌,比特币 ETF (BTCC)、Evolve 比特币 ETF (EBIT) 和 CI Galaxy 比特币 ETF (BTCX.B) 都是在多伦多证券交易所上市的基于比特币的交易所交易基金,开盘时下跌约 17%。巴西于 2021 年 3 月批准了其首个比特币 ETF,该产品 QR Asset Management 的 QBTC11 在巴西主要证券交易所 B3 交易,它也出现了类似的影响,开盘时下跌 17%。(the block)[2022/6/14 4:25:31]

在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提走之后再利用之前生成的订单来借款而无需还款,以此来获利。针对此类漏洞,慢雾安全团队建议在进行借款操作时应做好订单状态中是否已经提走抵押品的判断,避免再次出现此类问题。

来源:金色财经

标签:NFTROWBORTOKE无聊猿nft交易平台FGROW价格boring币今日行情老版本imtoken

中币交易所热门资讯
Hashed Research:我们需要重新思考未来的空投模式

加密项目经常使用空投的方式向社区成员分发免费代币,但效果如何??空投有助于项目将代币分发给社区用户,并且可能是营销计划的一部分,以提高用户对其核心产品或新产品的认识.

1900/1/1 0:00:00
Nansen 对 NFT 市场前景的 7 个看法

1.关于NFT的生命周期看历史NFT图表,从8月份开始一切都变了,NFT市场再没能达到去年8-9月份的销量和用户数。NFT市场一整年都在努力回到原来的水平——即使已经很接近,但还没有完全恢复.

1900/1/1 0:00:00
为什么Yield+激励计划是赋能EOS DeFi发展的重要一环?| AMA精彩回顾

2022年6月23日20:00,EOS网络基金会最新一期非正式柚谈栏目开播,本期活动围绕备受生态关注的Yield+蓝皮书及其EOS流动性激励计划展开.

1900/1/1 0:00:00
加密熊市下的“逆行者”:欧易OKX高歌猛进的秘密都在这里了

皮之不存,毛将焉附。 随着UST/LUNA稳定币脱锚崩盘、Celsius资不抵债、stETH脱锚、三箭资本遭遇流动性危机等一系列黑天鹅事件,加密行业开始陷入困境,比特币价格更是一路连续持续下跌至2万美元区间,创下近19个月的新低.

1900/1/1 0:00:00
Do Kwon 再发声:失败和欺诈之间存在差异 对新 Terra 充满信心

DoKwon利用狂热的Twitter追随者建立了一个加密货币帝国,该帝国上个月在400亿美元的崩盘中崩溃。尽管投资者愤怒、政府调查和加密市场低迷,这位韩国企业家如今正试图卷土重来.

1900/1/1 0:00:00
面对加密市场下跌 分析师们都说了啥?

美国证券交易委员会周三已拒绝灰度将其135亿美元的灰度比特币信托(GBTC)转换为现货比特币ETF的申请。美国证券交易委员会在其文件中表示,该申请未能回答美国证券交易委员会关于防止市场操纵以及其他担忧的问题.

1900/1/1 0:00:00