作者:Victory@慢霧安全團隊
原文鏈接:https://mp.weixin.qq.com/s/UECwAt_p8rXn-3kZ4kC2VQ

據慢霧區情報,2022 年 1 月 28 日 The Sandbox 官方發布一則 LAND 智能合約遷移的公告,但是在公告中沒有說明合約具體是出了什么問題,慢霧安全團隊現將簡要分析結果分享如下。

項目背景

The Sandbox 是一個虛擬世界,玩家可以使用平臺代幣 SAND 在以太坊區塊鏈中創建、擁有自己的游戲體驗并從中獲利。在這里你可以玩、創造、收集、賺取、治理和擁有游戲中的任何東西。

簡要分析

1.通過閱讀問題的合約,地址:0x50f5474724e0Ee42D9a4e711ccFB275809Fd6d4a,發現在以往都設置成內部調用的 _burn 函數在問題合約是一個 public 的狀態。

雖然函數內有做 require(from == owner, "not owner"); 判斷,但是這個 from 是可以由調用者自己構造。這就導致任何用戶都可以去隨意 burn 掉其他用戶的 NFT。

2.我們嘗試著去查詢鏈上的交易記錄,發現已經有人進行了 _burn 測試,成功燃燒掉了一塊不屬于他的 NFT,但沒有發現大規模的攻擊行為,應該是個白帽測試。

3.從上圖我們可以看到燃燒的 tokenID 是 3738, 但是NFT tokenURI 仍可正常訪問,土地的 NFT 信息也仍然可以訪問 ,我們推測官方應該已經對此做出修改。

4.隨后查看了項目方升級后的新合約,地址:

0x5CC5B05a8A13E3fBDB0BB9FcCd98D38e50F90c38

發現項目方這次更新后使用的是 proxy 合約(可能是便于日后出問題之后可以對合約進行二次升級),邏輯合約地址:0x1fc6479bdc7511c6803aff2f477e0fd3171606e0,對比后發現修改過的 _burn 函數其函數可見性已經修改成 internal。

5.至此,The Sandbox 事件簡要分析完畢。通過查詢合約發現還是有部分 NFT 擁有者還未做遷移,這是項目方提供的遷移界面:

https://sandbox.game/en/me/migrate。

總結

本次事件中項目方及時的確認了問題并且提出了解決方案,未造成用戶資產的嚴重損失。但是漏洞的細節讓人細思極恐。如果有攻擊者利用此漏洞并進行惡意攻擊,那么整個 The Sandbox 的土地將被燃燒殆盡。從中我們也可以發現沒有安全性的元宇宙世界就是空中樓閣。

慢霧安全團隊建議:元宇宙系統的安全邊界更廣,上線前應該進行充分的安全審計,避免出現類似嚴重的問題。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.jmbmsq.com/1828/