
慢雾:XCarnival NFT借贷协议漏洞分析
原文作者:九九,慢雾安全团队
2022 年 6 月 27 日,据慢雾区消息,XCarnival 项目被曝出严重漏洞遭黑客攻击并盗走 3,087 个 ETH(约 380 万美元)。XCarnival 是一个 ETH 链上的 NFT 借贷项目,目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
核心合约地址
P2Controller:
0x34ca24ddcdaf00105a3bf10ba5aae67953178b85
XNFT:
0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909
xToken:
0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663
攻击者 EOA 地址
0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a
攻击合约地址
0xf70F691D30ce23786cfb3a1522CFD76D159AcA8d
0x234e4B5FeC50646D1D4868331F29368fa9286238
0x7B5A2F7cd1cc4eEf1a75d473e1210509C55265d8
0xc45876C90530cF0EE936c93FDc8991534F8A6962
漏洞核心点分析
1.攻击者通过 XNFT 合约中的 pledgeAndBorrow 函数来进行抵押 NFT 并借出 xToken。
在 pledgeInternal 函数中转入 NFT 并生成订单:
2. 接着调用 withdrawNFT 函数提取出质押的 NFT,其中首先判断该订单是否被清算状态,如果不是则判断该订单的状态是否为 NFT 还未被提取且借款金额为 0(无负债),如果通过即可提取抵押的 NFT。
3. 以上为攻击前生成订单的准备操作,接着攻击者开始利用生成的订单直接调用 xToken 合约中的 borrow 函数进行借款。
在 borrowInternal 函数中,会外部调用 controller 合约中的 borrowAllowed 函数来判断是否可以借款。
可以看到在 borrowAllowed 函数会调用 orderAllowed 函数进行订单相关信息的判断,但是在这两个函数中均没有进行 _order.isWithdraw 状态的判断。因此攻击者可以利用之前生成的订单(订单里的抵押的 NFT 已经被提走)来调用 XToken 的 borrow 函数来借款,而因为抵押的 NFT 在之前已经被提出,故攻击者可以不用还款来实现获利。
攻击交易分析
此处仅展示其中一笔攻击交易的细节,其余攻击交易的手法均一致,不再赘述。
攻击前准备——生成订单的交易:
0x61a6a8936afab47a3f2750e1ea40ac63430a01dd4f53a933e1c25e737dd32b2f
1. 首先攻击者将 NFT 转入攻击合约并进行授权,接着调用 xNFT 合约中的 pledgeAndBorrow 函数在进行抵押 NFT 生成订单并借款的操作,此处需要注意一点是该函数可以控制传入的 xToken,攻击者传入了自己构造的 xToken 合约地址,并且让借款数量为 0,目的是为了满足后续能成功提出 NFT 时的不被清算且负债为 0 的条件。
2. 攻击者紧接着调用 withdrawNFT 函数来进行提取抵押的 NFT:
正式攻击交易:
0x51cbfd46f21afb44da4fa971f220bd28a14530e1d5da5009cfbdfee012e57e35
攻击者调用 xToken 合约的 borrow 函数,传入之前生成的订单的 orderID,重复了该操作 22 次(orderID: 45 – 66),而因为 NFT 在准备阶段已经提走,估计无需还款以此来获利。
总结
本次漏洞的核心在于借款的时候,没有进行订单中 NFT 是否被提走的状态的判断,导致攻击者可以在把 NFT 提走之后再利用之前生成的订单来借款而无需还款,以此来获利。针对此类漏洞,慢雾安全团队建议在进行借款操作时应做好订单状态中是否已经提走抵押品的判断,避免再次出现此类问题。
比推快讯
更多 >>- BTC 和 ETH 短线小幅走低,或受美国财长称去年就业数据可能下修影响
- Tom Lee 领导的 FutureCrest Acquisition 提交 IPO 申请,拟募集 2.5 亿美元
- Michael Saylor 再次发布比特币 Tracker 信息,或暗示再次增持 BTC
- 美国财长贝森特:特朗普批评美联储行动迟缓是正确的
- Polkadot 将于明天发布重要消息
- 数据:CHEEL、APT、S 等代币将于下周迎来大额解锁,其中 CHEEL 解锁价值约 5600 万美元
- Tether CEO:未出售 BTC,部分利润将持续投入安全资产
- 分析师:比特币处于盘整状态,略偏谨慎看涨
- 分析:即使美联储 9 月降息加密市场降温趋势短期仍会延续
- ether.fi 基金会:本周已使用 73 枚 ETH 协议收入购买 26.4 万枚 ETHFI
- 分析:委内瑞拉高通胀率导致 USDT 等稳定币已成为当地“事实货币”
- 以太坊提币趋势延续,过去 24 小时 CEX 净流出 6544 枚 ETH
- 某鲸鱼从 Binance 提取 1036.6 万枚 DOGE,价值 225 万美元
- 分析师:BTC 关键支撑位在 108,250 美元
- Numerai 创始人:大部分网站显示的 NMR TVL 数据是错误的,实际约为 2000 万美元
- 疑似 WLFI Wallet 团队成员回应“拉黑地址”事件:对任何损害社区行为零容忍
- Bio Protocol 创始人:将推出 Aubrai 终端,启动 IP-NFT 铸造及智能代理系统
- Michael Saylor 回应 Strategy 落选标普 500 指数:正在思考此事
- Yorkville Acquisition:按照特朗普媒体科技集团合并交易约定,股票代码将改为 MCGA
- 财新:业内人士称稳定币作为价值转移工具用于跨境支付需申请香港海关 MSO 牌照
- Bitdeer 本周挖矿产出 100.6 枚 BTC,比特币总持仓量达 1,934.9 枚
- ZachXBT:WLFI 需谨慎标记高风险地址,误报或对声誉造成无法弥补的损害
- Cathie Wood 旗下 Ark Invest 持有价值超 2.67 亿美元 BMNR 股票
- Nansen CEO:使用 AI 检查 WLFI 交易时间戳发现 Justin Sun 并未砸盘
- 近 24 小时 Solana 发币平台市场份额排行:pump.fun、Letsbonk、Meteora DBC 位列前三
- 中国国家自然科学基金发布稳定币相关研究课题
- 比特币市值已接近万事达卡和 Visa 市值总和的两倍
- Placeholder 合伙人:只有货币增发停止时,比特币才会真正见顶
- 万斯回应 2028 年竞选美国总统:不想这些,更专注当下
- 排队退出以太坊 PoS 网络的 ETH 已连续 9 日下降,价值约 30 亿美元 ETH 正排队退出
- 美联储 9 月降息 25 个基点概率为 89%,降息 50 个基点概率为 11%
- 区块链金融科技公司 Munify 完成 300 万美元种子轮融资,灰度母公司 DCG 参投
- 以太坊生态黑客松平台 Buidlbox 被 HackQuest 收购
- 特朗普家族发行加密货币敛财 50 亿美元遭美国参议员痛批:“大骗子”
- 新加坡警察部队:Tether、BTC 和 ETH 是上半年受骗损失额最高的三个加密币种
- 马斯克:Grok Imagine 几周后将发布重大版本,预计明年春季结束测试
- 日本首相石破茂决定辞职
- CZ:AI 伴侣是快速增长的领域,让我们将其与加密货币相结合
- Solana 链 AI 游戏 CAT Crew 2.0算力纪元正式发布
- 新加坡上半年因诈骗损失 4.56 亿新元,其中加密货币诈骗占 18 %
- Binance Alpha 将于 18:00 开放空投领取,一阶段积分门槛 238 分
- 当前主流 CEX、DEX 资金费率显示市场已偏向看空
- 萨尔瓦多近 7 日共增持 8 枚 BTC,总持仓达 6,292.18 枚
- WLFI 上涨触及 0.24 USDT,日内涨幅 10.5%
- Linea 下周流动性激励计划将提升至 1.6 亿枚 LINEA
- SEC 成立特别工作组打击针对美国投资者的跨境交易欺诈行为
- 24 小时现货资金流入/流出榜:WLFI 净流入 2861 万美元,BNB 净流入 1280 万美元
- 数据:当前加密恐慌贪婪指数为 43,处于恐慌状态
- Michael Saylor 入选彭博亿万富翁 500 指数,今年迄今其净资产飙升 10 亿美元
- 数字资产托管公司 Tangany 完成 1000 万欧元 A 轮融资
比推专栏
更多 >>观点
比推热门文章
- Tom Lee 领导的 FutureCrest Acquisition 提交 IPO 申请,拟募集 2.5 亿美元
- Michael Saylor 再次发布比特币 Tracker 信息,或暗示再次增持 BTC
- 美国财长贝森特:特朗普批评美联储行动迟缓是正确的
- Polkadot 将于明天发布重要消息
- 数据:CHEEL、APT、S 等代币将于下周迎来大额解锁,其中 CHEEL 解锁价值约 5600 万美元
- Tether CEO:未出售 BTC,部分利润将持续投入安全资产
- 分析师:比特币处于盘整状态,略偏谨慎看涨
- 分析:即使美联储 9 月降息加密市场降温趋势短期仍会延续
- ether.fi 基金会:本周已使用 73 枚 ETH 协议收入购买 26.4 万枚 ETHFI
- 分析:委内瑞拉高通胀率导致 USDT 等稳定币已成为当地“事实货币”