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