慢霧:pGALA 事件根本原因係私鑰明文在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

Total
0
Shares
Related Posts