上週 4 日,BNB Chain 上一個地址憑空鑄造價值超過 10 億美元的 pGALA 代幣,並在 PancakeSwap 流動性池拋售,引發社群恐慌,導致 GALA 幣價暴跌。漫霧透過鏈上數據研究發現,根本原因是 pGALA 代理合約的管理員角色持有的私鑰,已在 Github 洩漏。
(前情提要:趁GALA暴跌手動搬磚!勇者狂買4億顆pGALA,套現獲利634萬美元)
(背景補充:pNetwork擬重部署 pGALA、協同白帽至舊合約增發10億鎂 ;社群懼駭GALA暴跌33%)
據慢霧區情報,11 月 4 日,一個 BNB Chain 上地址憑空鑄造了超 10 億美元的 pGALA 代幣,並通過 PancakeSwap 售出獲利,導致此前 GALA 短時下跌超 20%。慢霧將簡要分析結果分享如下:
相關訊息
- pGALA 合約地址:0x7dDEE176F665cD201F93eEDE625770E2fD911990
- proxyAdmin 合約地址:0xF8C69b3A5DB2E5384a0332325F5931cD5Aa4aAdA
- proxyAdmin 合約原 owner 地址:0xfEDFe2616EB3661CB8FEd2782F5F0cC91D59DCaC
- proxyadmin 合約當前 owner 地址:0xB8fe33c4B55E57F302D79A8913CE8776A47bb24C
簡要分析
1. 在 pGALA 合約使用了透明代理(Transparent Proxy)模型,其存在三個特權角色,分別是 Admin、DEFAULT_ADMIN_ROLE 與 MINTER_ROLE。
2. Admin 角色用於管理代理合約的升級以及更改代理合約 Admin 地址,DEFAULT_ADMIN_ROLE 角色用於管理邏輯中各特權角色(如:MINTER_ROLE),MINTER_ROLE 角色管理 pGALA 代幣鑄造權限。
3. 在此事件中,pGALA 代理合約的 Admin 角色在合約部署時被指定為透明代理的 proxyAdmin 合約地址,DEFAULT_ADMIN_ROLE 與 MINTER_ROLE 角色在初始化時指定由 pNetwork 控制。 proxyAdmin 合約還存在 owner 角色,owner 角色為 EOA 地址,且 owner 可以通過 proxyAdmin 升級 pGALA 合約。
4. 但慢霧安全團隊發現 proxyAdmin 合約的 owner 地址的私鑰明文在 Github 洩漏了,因此任何獲得此私鑰的用戶都可以控制 proxyAdmin 合約隨時升級 pGALA 合約。
5. 不幸的是,proxyAdmin 合約的 owner 地址已經在 70 天前(2022-08-28)被替換了,且由其管理的另一個項目 pLOTTO 疑似已被攻擊。
6. 由於透明代理的架構設計,pGALA 代理合約的 Admin 角色更換也只能由 proxyAdmin 合約發起。因此在 proxyAdmin 合約的 owner 權限丟失後 pGALA 合約已處於隨時可被攻擊的風險中。
總結
綜上所述,pGALA 事件的根本原因在於 pGALA 代理合約的 Admin 角色的 owner 私鑰在 Github 洩漏,且其 owner 地址已在 70 天前被惡意替換,導致 pGALA 合約處於隨時可被攻擊的風險中。
參考資料來源:
关于 $pGala 完整的技术分析如下:
根据项目方的描述的 67 天前发现 pGALA 智能合约的所有权存在可疑之处,潜在攻击者可能随时接管 pGALA, 问题源于创建合约时的配置错误,理出了目前的权限,如下图: pic.twitter.com/y9YBAbY3sW
— Enoch (@enoch_eth) November 7, 2022
📍相關報導📍
pNetwork擬重部署 pGALA、協同白帽至舊合約增發10億鎂 ;社群懼駭GALA暴跌33%
科普Gala Games : 鏈遊領域的Steam平台,會是元宇宙的基礎設施嗎?