慢霧:pGALA 事件根本原因系私鑰明文在 GitHub 洩露

104次閱讀

作者: 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

 

wangxiongwu
版權聲明:本站原創文章,由 wangxiongwu 2022-11-08發表,共計1136字。
轉載說明:除特殊說明外,本站文章如需轉載請註明出處。