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

据慢雾区情报,11月4日,一个BNBChain上地址凭空铸造了超10亿美元的pGALA代币,并通过PancakeSwap售出获利,导致此前GALA短时下跌超20%。慢雾分析结果如下:

1.在pGALA合约使用了透明代理模型,其存在三个特权角色,分别是Admin、DEFAULT_ADMIN_ROLE与MINTER_ROLE。

慢雾:Equalizer Finance被黑主要在于FlashLoanProvider合约与Vault合约不兼容:据慢雾区消息,6 月 7 日,Equalizer Finance 遭受闪电贷攻击。慢雾安全团队以简讯形式将攻击原理分享如下:

1. Equalizer Finance 存在 FlashLoanProvider 与 Vault 合约,FlashLoanProvider 合约提供闪电贷服务,用户通过调用 flashLoan 函数即可通过 FlashLoanProvider 合约从 Vault 合约中借取资金,Vault 合约的资金来源于用户提供的流动性。

2. 用户可以通过 Vault 合约的 provideLiquidity/removeLiquidity 函数进行流动性提供/移除,流动性提供获得的凭证与流动性移除获得的资金都受 Vault 合约中的流动性余额与流动性凭证总供应量的比值影响。

3. 以 WBNB Vault 为例攻击者首先从 PancekeSwap 闪电贷借出 WBNB

4. 通过 FlashLoanProvider 合约进行二次 WBNB 闪电贷操作,FlashLoanProvider 会先将 WBNB Vault 合约中 WBNB 流动性转给攻击者,随后进行闪电贷回调。

5. 攻击者在二次闪电贷回调中,向 WBNB Vault 提供流动性,由于此时 WBNB Vault 中的流动性已经借出一部分给攻击者,因此流动性余额少于预期,则攻击者所能获取的流动性凭证将多于预期。

6. 攻击者先归还二次闪电贷,然后从 WBNB Vault 中移除流动性,此时由于 WBNB Vault 中的流动性已恢复正常,因此攻击者使用添加流动性获得凭证所取出的流动性数量将多于预期。

7. 攻击者通过以上方式攻击了在各个链上的 Vault 合约,耗尽了 Equalizer Finance 的流动性。

此次攻击的主要原因在于 Equalizer Finance 协议的 FlashLoanProvider 合约与 Vault 合约不兼容。慢雾安全团队建议协议在进行实际实现时应充分考虑各个模块间的兼容性。[2022/6/8 4:09:22]

2.Admin角色用于管理代理合约的升级以及更改代理合约Admin地址,DEFAULT_ADMIN_ROLE角色用于管理逻辑中各特权角色,MINTER_ROLE角色管理pGALA代币铸造权限。

慢雾:去中心化期权协议Acutus的ACOWriter合约存在外部调用风险:据慢雾区消息,2022年3月29日,Acutus的ACOWriter合约遭受攻击,其中_sellACOTokens函数中外部调用用到的_exchange和exchangeData参数均为外部可控,攻击者可以通过此漏洞进行任意外部调用。目前攻击者利用该手法已经盗取了部分授权过该合约的用户的资产约72.6万美金。慢雾安全团队提醒使用过该合约的用户请迅速取消对该合约的授权以规避资产被盗风险。[2022/3/29 14:25:07]

3.在此事件中,pGALA代理合约的Admin角色在合约部署时被指定为透明代理的proxyAdmin合约地址,DEFAULT_ADMIN_ROLE与MINTER_ROLE角色在初始化时指定由pNetwork控制。proxyAdmin合约还存在owner角色,owner角色为EOA地址,且owner可以通过proxyAdmin升级pGALA合约。

慢雾:BTFinance被黑,策略池需防范相关风险:据慢雾区情报,智能DeFi收益聚合器BT.Finance遭受闪电贷攻击。受影响的策略包括ETH、USDC和USDT。经慢雾安全团队分析,本次攻击手法与yearnfinance的DAI策略池被黑的手法基本一致。具体分析可参考慢雾关于yearnfinace被黑的技术分析。慢雾安全团队提醒,近期对接CurveFinance做相关策略的机池频繁遭受攻击。相关已对接CurveFinance收益聚合器产品应注意排查使用的策略是否存在类似问题,必要时可以联系慢雾安全团队协助处理。[2021/2/9 19:19:41]

4.但慢雾安全团队发现proxyAdmin合约的owner地址的私钥明文在Github泄漏了,因此任何获得此私钥的用户都可以控制proxyAdmin合约随时升级pGALA合约。

5.proxyAdmin合约的owner地址已经在70天前被替换了,且由其管理的另一个项目pLOTTO疑似已被攻击。

6.由于透明代理的架构设计,pGALA代理合约的Admin角色更换也只能由proxyAdmin合约发起。因此在proxyAdmin合约的owner权限丢失后pGALA合约已处于随时可被攻击的风险中。

综上所述,pGALA事件的根本原因在于pGALA代理合约的Admin角色的owner私钥在Github泄漏,且其owner地址已在70天前被恶意替换,导致pGALA合约处于随时可被攻击的风险中。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:78ms0-1:372ms