私钥泄漏

慢雾:pGALA 事件根本原因系私钥明文在 GitHub 泄露

ChainCatcher 消息,据慢雾区情报,11 月 4 日,一个 BNB Chain 上地址凭空铸造了超 10 亿美元的 pGALA 代币,并通过 PancakeSwap 售出获利,导致此前 GALA 短时下跌超 20%。慢雾分析结果如下: 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 年 8 月 28 日)被替换了,且由其管理的另一个项目 pLOTTO 疑似已被攻击。 6. 由于透明代理的架构设计,pGALA 代理合约的 Admin 角色更换也只能由 proxyAdmin 合约发起。因此在 proxyAdmin 合约的 owner 权限丢失后 pGALA 合约已处于随时可被攻击的风险中。 综上所述,pGALA 事件的根本原因在于 pGALA 代理合约的 Admin 角色的 owner 私钥在 Github 泄漏,且其 owner 地址已在 70 天前被恶意替换,导致 pGALA 合约处于随时可被攻击的风险中。(来源链接)
ChainCatcher 与创新者共建Web3世界