pGALA 事件的根本原因在於 pGALA 代理合約的 Admin 角色的 owner 私鑰在 Github 洩漏

作者: Kong

據慢霧區情報,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 合約處於隨時可被攻擊的風險中。

參考:https://twitter.com/enoch_eth/status/1589508604113354752

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。