您的位置:首页 > 互联网 >

FairWin存在管理权限引发的缺陷 可转移旧合约的余额

2019-10-04 11:09:32 来源: 区块网

近日,一个名为FairWin的资金盘项目尤为引人瞩目,受其影响,以太坊网络 Gas 消耗量持续处于高饱和的状态,其单个 DApp 的 Gas 利用率就达到了

近日,一个名为“FairWin”的资金盘项目尤为引人瞩目,受其影响,以太坊网络 Gas 消耗量持续处于高饱和的状态,其单个 DApp 的 Gas 利用率就达到了以太坊网络可承载 Gas总量的近半数。

然而,因被曝存在智能合约安全漏洞, FairWin被推上风口浪尖,一时间引来大众对于类 FairWin 游戏命运乃至整体以太坊网络稳定性的担忧。

概述

北京时间2019年09月27日,PeckShield 安全人员在深入分析 FairWin 智能合约时发现,FairWin 智能合约存在一些因管理权限问题引发的致命缺陷,旧合约中的余额可被用户任意操作并转移,且在升级后的新合约又存在一个新问题,使得用户可以制造虚假投注来捞取奖池剩余资金。

FairWin 合约问题的由来

经 PeckShield 旗下 DApp 数据服务平台 DAppTotal.com 最新监测数据显示,自08月26日以来,以太坊网络每日 Gas 消耗量持续处于高度饱和的状态,即每日 Gas 消耗量占以太坊网络可承载 Gas 总量的90%以上,整体网络状况异常拥堵。

造成持续拥堵原因为,最近横空出世了一个名为 FairWin 的资金盘项目,其每日 Gas 消耗量占比达到了以太坊网络可承载总量的近半数(如下图)

PeckShield 安全人员通过分析FairWin智能合约代码发现,在06月17日,FairWin 部署了0x11f5 开头的合约,分析其合约源码发现,存在以下的调用:

不难发现,sendFeeToAdmin() 这一方法可以被任何用户调用,一旦调用之后,FairWin 合约中的余额就会被转移至指定的 admin 地址之中。这一问题被 ConsenSys 的安全研究人员 Daniel Luca 发现,随后项目方于07月27日部署了 0x01ea 开头的新版合约,对该问题进行了修复。

如下图,通过分析新版合约的代码发现,sendFeeToAdmin() 方法已被设置为 private:

这样的话,上述方法就无法被外部直接调用,上述问题也得到解决,但 PeckShield 安全人员深入分析发现,问题并没有那么简单:由于区块链的不可篡改特性,DApp 从旧合约升级到新合约,但用户之前的投注记录依然保存于旧合约,项目方需要想办法将用户的投注记录迁移至新合约。

为了解决这个问题,FairWin 团队引入了 remedy() 接口,用以将用户的资产直接导入到新合约之中:

新合约漏洞原理分析

通过分析 remedy() 接口,其实现数字资产迁移的大体流程如下:

1. 确保 remedy() 这一操作当前处于开放状态;

2. 根据参数还原用户的投注数据,并保存到新合约的数据库之中。

PeckShield 安全人员通过分析 Ethereum 链上数据发现,remedy() 在新合约上线之后一共被调用了 503 次,一共给 500 位投资者完成了资产迁移,并且这一调用方法均由 FairWin 管理员发起。

不过,这一方法能否调用成功,取决于其中的 actStu 参数是否为 0,PeckShield 安全人员分析 FairWin 新合约代码发现了新的问题:

actStu 默认为 0,也就是 remedy() 方法可以调用;

closeAct() 方法将 actStu 设为 1,也就是关闭 remedy() 通道。

问题的关键就在于此:

closeAct() 方法添加了 onlyOwner 限制,而 remedy() 却没有加这一限制。

由于上述限制条件存在的不一致性,倘若合约 Owner 没有通过 closeAct() 关闭 actStu 时,任何用户都可以通过 remedy() 接口修改投注数据,进而实现在0投入的情况下,伪造大量资金投入,并通过 userWithDraw() 将合约余额奖金取出。

值得庆幸的是,截至目前,尚没有已知攻击发生,且 FairWin 合约 owner 已经将actStu 关闭,潜在威胁暂时得以排除。

漏洞后续影响

FairWin 短期内依然保持较大的热度,基于其也产生了诸如 EtherHonor、HyperFair 等仿盘,不排除这类仿盘也存在潜在问题的可能。

此外,在 FairWin 合约被曝存在安全问题后,有舆论声音质疑称,这可能是“项目方事先预留的后门并从中空手套白狼”,但,PeckShield 安全人员通过追踪新旧合约的交互行为发现,项目方除了将旧合约已投注资金问题向新合约迁移之外,对于用户投注错误的资金也给予了原路返还:

如下,在08月01日出现了一次调用:

1. 0xa584 开头的账号(用户)在区块高度为 8263419 中向 FairWin 旧合约投注了 11ETH,

2. 投注的金额被 0xcb10 在区块高度 8264604 转移到 FairWin 0x854d 管理员账号之中,

3. 之后在区块高度为 8264613 的时候,管理员账号又将这 11ETH 转回给 0xa584 账号(用户)。

从链上行为初步看来,项目方是可以撇开“作恶”的嫌疑了。针对以上漏洞威胁, PeckShield 安全人员建议,对于智能合约的敏感操作,应当添加相应的访问权限限制,对于上述的 remedy() 操作需要添加 onlyOwner 限制,以避免被其它人恶意使用。另外,对于用户的数字资产,应当保持充分的敬畏之心。

对开发者而言,与此同时也暴露出一个问题,在合约升级过程中很可能冒出各种“新”的问题,项目方应第一时间针对问题进行应急响应,并可寻求第三方安全公司帮助其进行上线前潜在漏洞排查。

对用户而言,即使这样也并不意味着参与 FairWin 之后就可以“高枕无忧”了。毕竟,资金盘终归是资金盘,当你在凝视深渊的时候,深渊也正在凝视着你。

PeckShield 安全人员通过分析 ETH 的地址余额曲线(如上图)发现,在被曝出现漏洞威胁后,FairWin 合约的余额有了明显的下滑,可见漏洞问题给项目方带来了一定的信任危机,大量的用户开始撤出资金。考虑到资金盘的机制,短期余额持续下滑的状况可能会埋下一个“暴雷”的种子,PeckShield 在此提醒广大用户应谨慎参与此类资金盘项目,避免因其潜在不稳定性造成不可挽回的损失。(PeckShield)

关键词: FairWin 管理权限 缺陷

精选 导读

募资55亿港元万物云启动招股 预计9月29日登陆港交所主板

万科9月19日早间公告,万物云当日启动招股,预计发行价介乎每股47 1港元至52 7港元,预计9月29日登陆港交所主板。按发行1 167亿股计算,万

发布时间: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情况曝光 隐形重仓股多为高端制造业

随着半年报披露收官,公募基金二季度持股情况曝光。截至今年二季度末,公募基金全市场基金总数为9794只,资产净值为269454 75亿元,同比上

发布时间: 2022-09-02 10:45
资讯   2022-09-02

又有上市公司宣布变卖房产 上市公司粉饰财报动作不断

再有上市公司宣布变卖房产。四川长虹25日称,拟以1 66亿元的转让底价挂牌出售31套房产。今年以来,A股公司出售房产不断。根据记者不完全统

发布时间: 2022-08-26 09:44
资讯   2022-08-26

16天12连板大港股份回复深交所关注函 股份继续冲高

回复交易所关注函后,大港股份继续冲高。8月11日大港股份高开,随后震荡走高,接近收盘时触及涨停,报20 2元 股。值得一提的是,在7月21日

发布时间: 2022-08-12 09:56
资讯   2022-08-12

万家基金再添第二大股东 中泰证券拟受让11%基金股权

7月13日,中泰证券发布公告,拟受让齐河众鑫投资有限公司(以下简称齐河众鑫)所持有的万家基金11%的股权,交易双方共同确定本次交易的标的资

发布时间: 2022-07-14 09:39
管理   2022-07-14

央行连续7日每天30亿元逆回购 对债市影响如何?

央行12日再次开展了30亿元逆回购操作,中标利率2 10%。这已是央行连续7日每天仅进行30亿元的逆回购缩量投放,创下去年1月以来的最低操作规

发布时间: 2022-07-13 09:38
资讯   2022-07-13

美元指数创近20年新高 黄金期货创出逾9个月新低

由于对美联储激进加息的担忧,美元指数11日大涨近1%创出近20年新高。受此影响,欧美股市、大宗商品均走弱,而黄金期货创出逾9个月新低。美

发布时间: 2022-07-13 09:36
资讯   2022-07-13

美股三大股指全线下跌 纳斯达克跌幅创下记录以来最大跌幅

今年上半年,美股持续回落。数据显示,道琼斯指数上半年下跌15 3%,纳斯达克综合指数下跌29 5%,标普500指数下跌20 6%。其中,纳斯达克连续

发布时间: 2022-07-04 09:51
推荐   2022-07-04

融资客热情回升 两市融资余额月内增加超344亿元

近期A股走强,沪指6月以来上涨4%,融资客热情明显回升。数据显示,截至6月16日,两市融资余额1 479万亿元,月内增加344 67亿元,最近一个半

发布时间: 2022-06-20 09:41
资讯   2022-06-20

4个交易日净买入超百亿元 北向资金持续流入A股市场

北向资金净流入态势延续。继6月15日净买入133 59亿元后,北向资金6月16日净买入44 52亿元。自5月27日至今,除6月13日以外,北向资金累计净

发布时间: 2022-06-17 09:37
推荐   2022-06-17