NBA球員卡NFT合約漏洞百出!沒白名單也可免費鑄造

NBA球員卡NFT合約漏洞百出!沒白名單也可免費鑄造

NBA 推出的動態 「THE ASSOCIATION」於昨日凌晨正式開放鑄造,許多早期進入 Discord 的支持者皆能獲得白名單資格。然而,卻因為漏洞,導致許多沒有白名單的用戶也能夠大量鑄造,進而使得部分符合資格的用戶損失權益。

THE ASSOCIATION NFT 合約漏洞

Let's take a deep dive on the @NBAxNFT contract today including how the exploit worked and what I think of the contract overall:

🧵👇

— cygaar (@cygaar_dev) April 20, 2022

根據 開發人員 cygaar 的說法,若想利用其合約漏洞,只需將此數據發送到尚未鑄造過的上的合約地址。無需擁有白名單資格也可以進行此操作。

Image

將這段數據反編譯後,你會看到它調用的函數是 mint_approved,仔細觀察 info 中的參數會發現這段程式碼主要是用來判斷交易是否由鑄造網站簽名,以及用戶是否在白名單內。然而,它少了一個關鍵部分,他沒有去檢查 info.from == msg.sender.

截圖 2022 04 21 上午11.12.20

這意味者同樣的簽名能被任何人重複利用,只需一個有效的簽名便可無限循環。雖然一個僅能鑄造一次,但要創建一個新錢包不過就是幾秒鐘的事情而已。

此外,cygaar 提出了一個更大的疏失。合約並沒有檢查交易是否來自用戶,若能多添加一行:require(tx.origin == msg.sender, ‘Caller not user'),即可降低合約被濫用的

上述漏洞被發現後,被許多有心人士利用,導致 在短時間內被鑄造完畢,甚至導致有白名單的用戶無法鑄造。

「整理來看,合約看起來非常草率。隨意的註解、大小寫不一致、許多未使用的變數,且沒有進行優化」cygaar 說道。

為了使更加安全完善,cygaar 給了幾點建議:

  • 妥善地進行簽名驗證,確保簽名來自訊息發送方
  • 對合約多用點心,別再只是到處複製貼上
  • 聘請審計員,任何合格的審計員皆能在短時間內發現這些漏洞

官方致歉

We recognize the issues with the smart contract which caused the Allow List supply to sell out prematurely. We apologize for this situation and are currently identifying the Allow List wallets that were not able to mint as a result.

— NBAxNFT (@NBAxNFT) April 20, 2022

在事情發生後,NBAxNFT 立即於其 Twitter 表達歉意,他們當前正在確認因漏洞導致無法鑄造的白名單錢包。若有問題可於其 Discord 反應。

增發 12,000 張球員卡 (4/22 更新)

Thank you for your patience as we've worked to analyze the issues experienced in yesterday's The Association NFT mint. We appreciate the engagement and feedback we've received from this community as we've worked towards a solution.

— NBAxNFT (@NBAxNFT) April 21, 2022

根據官方最新聲明,其已確認那些有白名單資格卻無法鑄造的用戶錢包,這些用戶將收到一個 THE ASSOCIATION NFT 作為補償。

不過,此系列的 NFT 也將由原先的 18,000 個增發至 30,000 個,每位球員的張數也由 75 張增加至 125 張。

相關資料:THE ASSOCIATION NFT 合約程式碼、THE ASSOCIATION NFT 合約持有者

本文轉自網路,如有侵權請來信告知,本網站不代表任何投資建議,僅提供資訊,若用戶有任何投資相關行為皆與本站無關

本網站所載的任何資訊均不構成投資建議,投資有賺有賠,投資人應獨立判斷,審慎投資,自負

Related Posts