慢霧:XCarnival NFT借貸協議漏洞分析

發表於 2022-06-28 03:13 作者: 區塊鏈情報速遞pro

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。

慢霧:XCarnival NFT借貸協議漏洞分析

在 pledgeInternal 函數中轉入 NFT 並生成訂單:

慢霧:XCarnival NFT借貸協議漏洞分析

2. 接着調用 withdrawNFT 函數提取出質押的 NFT,其中首先判斷該訂單是否被清算狀態,如果不是則判斷該訂單的狀態是否爲 NFT 還未被提取且借款金額爲 0(無負債),如果通過即可提取抵押的 NFT。

慢霧:XCarnival NFT借貸協議漏洞分析

3. 以上爲攻擊前生成訂單的准備操作,接着攻擊者开始利用生成的訂單直接調用 xToken 合約中的 borrow 函數進行借款。

慢霧:XCarnival NFT借貸協議漏洞分析

在 borrowInternal 函數中,會外部調用 controller 合約中的 borrowAllowed 函數來判斷是否可以借款。

慢霧:XCarnival NFT借貸協議漏洞分析

可以看到在 borrowAllowed 函數會調用 orderAllowed 函數進行訂單相關信息的判斷,但是在這兩個函數中均沒有進行 _order.isWithdraw 狀態的判斷。因此攻擊者可以利用之前生成的訂單(訂單裏的抵押的 NFT 已經被提走)來調用 XToken 的 borrow 函數來借款,而因爲抵押的 NFT 在之前已經被提出,故攻擊者可以不用還款來實現獲利。

慢霧:XCarnival NFT借貸協議漏洞分析

攻擊交易分析

此處僅展示其中一筆攻擊交易的細節,其余攻擊交易的手法均一致,不再贅述。

攻擊前准備——生成訂單的交易:

0x61a6a8936afab47a3f2750e1ea40ac63430a01dd4f53a933e1c25e737dd32b2f

1. 首先攻擊者將 NFT 轉入攻擊合約並進行授權,接着調用 xNFT 合約中的 pledgeAndBorrow 函數在進行抵押 NFT 生成訂單並借款的操作,此處需要注意一點是該函數可以控制傳入的 xToken,攻擊者傳入了自己構造的 xToken 合約地址,並且讓借款數量爲 0,目的是爲了滿足後續能成功提出 NFT 時的不被清算且負債爲 0 的條件。

慢霧:XCarnival NFT借貸協議漏洞分析

2. 攻擊者緊接着調用 withdrawNFT 函數來進行提取抵押的 NFT:

慢霧:XCarnival NFT借貸協議漏洞分析

正式攻擊交易:

0x51cbfd46f21afb44da4fa971f220bd28a14530e1d5da5009cfbdfee012e57e35

攻擊者調用 xToken 合約的 borrow 函數,傳入之前生成的訂單的 orderID,重復了該操作 22 次(orderID: 45 - 66),而因爲 NFT 在准備階段已經提走,估計無需還款以此來獲利。

慢霧:XCarnival NFT借貸協議漏洞分析

總結

本次漏洞的核心在於借款的時候,沒有進行訂單中 NFT 是否被提走的狀態的判斷,導致攻擊者可以在把 NFT 提走之後再利用之前生成的訂單來借款而無需還款,以此來獲利。針對此類漏洞,慢霧安全團隊建議在進行借款操作時應做好訂單狀態中是否已經提走抵押品的判斷,避免再次出現此類問題。(慢霧科技)

OKEX下載,歐易下載,OKX下載

okex交易平台app下載

標題:慢霧:XCarnival NFT借貸協議漏洞分析

地址:https://www.coinsdeep.com/article/4036.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡