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

前言

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

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

基础信息

Sullivan Bank与Bakkt合作为客户提供加密服务:8月24日消息,Sullivan Bank与数字资产平台Bakkt达成合作,利用Bakkt Crypto Connect很快使Sullivan Bank客户能够购买、出售和持有比特币和以太坊。(Business Wire)[2022/8/24 12:46:13]

被攻击合约:0x0288fba0bf19072d30490a0f3c81cd9b0634258a

攻击者地址:0xB2C035eee03b821cBe78644E5dA8B8eaA711D2e5

外媒:美国SEC官员回应称SEC尚未就BNB向币安发出传票:7月22日消息,加密媒体CoinDesk根据《信息自由法》向SEC提交了一份“SEC就调查BNB代币向币安发出的传票”的请求被退回,但一位SEC官员在回复中写道:“根据你在信中提供的信息,我们对SEC的各种记录系统进行了彻底搜索,但没有找到或识别任何响应你请求的信息。”

据悉,彭博社曾于6月份报道,美国SEC正在调查BNB代币是否为未注册的证券,对此赵长鹏回应币安就其产品与当局保持定期联系,并否认该公司已被传唤。[2022/7/22 2:30:59]

攻击合约:0xcD337b920678cF35143322Ab31ab8977C3463a45、0x68b5f1635522ec0e3402b7e2446e985958777c22

DCG CEO:市场已经达到了“最大痛苦”,将购买比特币:金色财经消息,Digital Currency Group首席执行官Barry Silbert发文称,“感觉加密市场已经达到了最大的痛苦和不确定性,我们在这里购买BTC”。[2022/6/18 4:35:59]

tx:0xfffd3aca0f53715f4c76c4ff1417ec8e8d00928fe0dbc20c89d875a893c29d89

GymSinglePool代理合约:0xa8987285e100a8b557f06a7889f79e0064b359f2

韩国检方调查Do Kwon税务欺诈相关文件:Do Kwon将代币交易利润转移至避税天堂:6月15日消息,韩国检方也对Do Kwon的逃税指控展开了全面调查。韩国检方突击搜查了国家税务局,以扣押与调查Do Kwon进行税务欺诈有关的文件。据悉,首尔南地方检察厅金融证券犯罪联合调查组近日对首尔地方税务厅第四调查局进行了搜查和扣押。检方从国税局对Do Kwon进行的税务调查文件发现,自去年6月以来,国税厅发现了由Do Kwon创建的一家海外公司的可疑资金流向,并开始了税务调查。事后,国税厅证实Do Kwon将其新加坡公司的代币交易利润窃取到避税天堂维尔京群岛,并征收包括所得税和公司税在内的500亿韩元税款。不过,国税局并未向检方提出申诉,特别税务调查的事实通过媒体报道较晚才公布。

在分析扣押和搜查数据的同时,检方正在积极核实Do Kwon的“逃税指控”以及Terraform Labs的资金流向。当时,由于国税厅的调查显示涉嫌偷漏赠与税,例如Do Kwon向家人捐赠代币购买公寓,计划再次调查这部分。还证实,最高检察官办公室最近向该团队派遣了一名具有虚拟货币专业知识的调查员。(SBS NEWS)[2022/6/15 4:29:54]

漏洞分析

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

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

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

攻击流程

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

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

内部调用细节如下:

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

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

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

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

溯源处置

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

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

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

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

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

总结

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

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

地球链

[0:0ms0-0:799ms