小缺陷大损失 ,GYM Network何至于此 ?-ODAILY

前言

北京时间2022年6月8日,知道创宇区块链安全实验室自动数据监测工具监测到BSC链上NFT项目GYMNetwork因"PublicdepositFromOtherContract"权限控制问题被攻击,损失包括7475枚BNB,共计约216W美元,目前已将兑通过DEX换70W美元的ETH通过Celer跨链到以太坊,2000枚BNB利用BSC-Tornado进行混币,余下3000枚BNB在攻击者地址。

知道创宇区块链安全实验室第一时间跟踪本次事件并分析。

基础信息

被攻击合约:0x0288fba0bf19072d30490a0f3c81cd9b0634258a

攻击者地址:0xB2C035eee03b821cBe78644E5dA8B8eaA711D2e5

Binance宣布退出后,Kraken的加拿大客户存款增长25%:金色财经报道,在Binance于 5 月初宣布退出后的几周内,Kraken 在加拿大的客户存款增长了 25%,并且在 OKX 表示计划于 3 月退出后的一周内,Kraken为加拿大客户提供的两款移动应用程序的下载量增加了五倍。[2023/6/1 11:52:39]

攻击合约:0xcD337b920678cF35143322Ab31ab8977C3463a45、0x68b5f1635522ec0e3402b7e2446e985958777c22

tx:0xfffd3aca0f53715f4c76c4ff1417ec8e8d00928fe0dbc20c89d875a893c29d89

GymSinglePool代理合约:0xa8987285e100a8b557f06a7889f79e0064b359f2

漏洞分析

项目方在GymSinglePool合约中实现过程中对于0x0288fba0bf19072d30490a0f3c81cd9b0634258a#depositFromOtherContract函数缺少了权限控制,导致攻击者能够通过该函数调用内部_autoDeposit函数实现零消耗质押:

ZachXBT:监控中的美国官方持币地址并无异动:5月11日消息,链上侦探ZachXBT在社交媒体上发文表示,其监控的美国官方丝绸之路案相关持币地址并无异动。Arkham官方在相关推文中同样回复显示,表示并没有看到异动。

此前“疑似美国官方地址转移9819枚比特币”的消息或为地址被错误标记,目前Arkham并未对本次事件发布详细澄清公告。[2023/5/11 14:56:03]

对于应该开放给用户的质押内部函数是_deposit函数,该函数实现了对于token的审批传入,如下图所示:

BIT Mining Limited宣布推出新一代狗狗币和莱特币矿机:金色财经报道,加密矿企BIT Mining Limited宣布推出最新一代狗狗币和莱特币矿机,型号为LD4。BTCM自主研发的LD系列ASIC矿机,专为在DOGE上挖矿而设计和具有峰值哈希率和能源效率的LTC区块链。LD4的功率效率新记录为0.71W/MH,比LD3型号的0.73W/MH 有所提高。通过利用最新的技术进步,LD4的峰值输出可以达到5GH/s,远高于LD3达到的4800MH/s?[2023/5/1 14:37:03]

对应的_autoDeposit函数则实现了"特权"质押,即不需要转入Token进行质押。同时该函数直接暴露给了用户,函数对比如下:

攻击流程

波卡正式上线链间消息传递格式XCM:5月4日消息,Polkadot(波卡)推出了一种新的跨链通信协议,称其将消除繁琐的桥接机制,这些机制在网络攻击中给加密行业造成了数十亿美元的损失。

新推出的XCM消息系统旨在促进Polkadot的多链生态系统。据称,XCM通道的受保护程度与Polkadot的中央枢纽(称为中继链)处于同一级别,也可由平行链使用。换句话说,XCM将使平行链本身和智能合约之间的通信成为可能。

XCM的未来迭代将允许消息在平行链之间发送,而不必存储在中继链上,从而提高单个链的可扩展性并消除治理过程。(Cointelegraph)[2022/5/4 2:50:11]

攻击者为了防止链上MEV和抢跑机器人,将合约进行了分步部署执行,同时部署/调用了多次以完成对GymNetwork合约(0x3a0d9d7764FAE860A659eb96A500F1323b411e68)中的GYMNETToken完全抽离,以其中一笔部署调用为例:

1.部署合约后调用depositFromOtherContract实"特权"质押,对应0xfd4a2266方法:

加密项目平台CityCoins通过11个新的孵化项目扩展服务:4月26日消息,Stacks链上的加密项目平台CityCoins计划通过来自Stacks Ventures项目孵化器的11个项目来扩展其服务,为CityCoins添加无线网络、web3、游戏、NFT、DAO、教育和 DeFi功能。据悉,Stacks Ventures是一个价值400万美元的孵化器,用于Stacks比特币Layer 2智能合约解决方案相关的项目。此前消息,CityCoins为迈阿密和纽约分别了城市加密货币MiamiCoin、NYCCoin,人们通过购买或挖掘加密货币来支持他们所在的城市,资金随后被转入城市的财务储备,由当地政府决定如何使用。(Cointelegraph)[2022/4/26 5:12:29]

内部调用细节如下:

2.调用0x30649e15实现对上一步特权质押的Token回撤:

3.利用0x1d111d13函数售出获取到的的GYM-Token:

重复多次"特权"质押--回撤--售出步骤,攻击者最终获取到7475枚BNB:

为了抑制抢跑,攻击者将添加质押和回撤进行了步骤分离,两个步骤均为核心操作,同时刻意提高添加部分步骤的GasPrice为15/20gwei,可见攻击者是有意为之。

溯源处置

本次攻击原因是项目方实现的特权函数权限控制不当,在攻击发现的1小时后项目方将GymSinglePool代理合约的逻辑合约进行了多次修改,为其添加了权限控制:

并在20分钟后对逻辑合约添加了紧急账户处置函数:

而对于项目方Deployer地址分析,其部署的多个GymSinglePool合约根据追踪仅在两天前部署的GymSinglePool合约中存在漏洞,4天前的合约则不存在此函数:

同时代理合约对应的逻辑合约被升级为漏洞合约的事件发生在在2days13hrsago:

攻击者的资金准备(FromTornado)则在约6小时以前,攻击者的身份也值得令人深思。

总结

虽然只是一处小的控制缺陷,却导致了数百万美元的损失。项目方的处置虽较为及时,漏洞导致的损失却难以挽回。该类型漏洞在审计过程中很容易被发现并将归纳到逻辑缺陷/不安全的外部调用,各项目方在开发和审计流程上切莫大意。

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

银河链

[0:15ms0-1:789ms