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 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。