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

作者:Kong

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

相关信息

pGALA合约地址

0x7dDEE176F665cD201F93eEDE625770E2fD911990

proxyAdmin合约地址

0xF8C69b3A5DB2E5384a0332325F5931cD5Aa4aAdA

慢雾:过去一周Web3因安全事件损失约265万美元:7月17日消息,慢雾发推称,2023年7月10日至7月16日期间,Web3发生5起安全事件,总损失为265.5万美元,包括Arcadia Finance、Rodeo Finance、LibertiVault、Platypus、Klever。[2023/7/17 10:59:08]

proxyAdmin合约原owner地址

0xfEDFe2616EB3661CB8FEd2782F5F0cC91D59DCaC

proxyadmin合约当前owner地址

慢雾:V神相关地址近日于Uniswap卖出3000枚以太坊:11月14日消息,据慢雾监测显示,以太坊创始人Vitalik Buterin地址(0xe692开头)近日在Uniswap V3上分三笔将3000枚以太坊(约400万美元)兑换成了USDC。[2022/11/14 13:03:22]

0xB8fe33c4B55E57F302D79A8913CE8776A47bb24C

简要分析

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

慢雾:Crosswise遭受攻击因setTrustedForwarder函数未做权限限制:据慢雾区情报,2022年1月18日,bsc链上Crosswise项目遭受攻击。慢雾安全团队进行分析后表示,此次攻击是由于setTrustedForwarder函数未做权限限制,且在获取调用者地址的函数_msg.sender()中,写了一个特殊的判断,导致后续owner权限被转移以及后续对池子的攻击利用。[2022/1/19 8:57:48]

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

慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:

1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。

2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。

3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。

4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。

此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]

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天前被替换了,且由其管理的另一个项目pLOTTO疑似已被攻击。

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

总结

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

参考:https://twitter.com/enoch_eth/status/1589508604113354752

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

金智博客

[0:0ms0-6:85ms