智能合约红色预警:四个Token惊爆逻辑漏洞,归零风险或源于代码复制

来源:SECBIT实验室 作者: SECBIT技术社区 2018/05/24

在继智能合约漏洞溢出问题引发了一系列损失过后,5月24号,有安全团队再次爆出漏洞溢出的问题(CVE-2018–11397, CVE-2018–11398),账户余额可以被任何人任意转出。

在继智能合约漏洞溢出问题引发了一系列损失过后,5月24号,有安全团队再次爆出漏洞溢出的问题(CVE-2018–11397, CVE-2018–11398),账户余额可以被任何人任意转出。

根据SECBIT实验室实验室风险预警平台显示,对该类问题进行监控,果不其然,发现了这个问题,更可怕的是,SECBIT监控系统显示,已经部署的四份合约存在相同的问题,并且四份合约的实现几乎一模一样。

搜狗截图18年05月24日1233_1

搜狗截图18年05月24日1233_1

以下为问题合约的地址通过sha3(address)计算出的哈希结果:

 

搜狗截图18年05月24日1233_2

搜狗截图18年05月24日1233_2

问题合约代码中显示,在transferFrom函数中,由于缺少了对allowed的校验, 任何账户都可以对某一账户上的余额随意进行转账,黑客就可以利用这个漏洞将他人账户上的余额转入自己的账户中,从而获益。同时若转账金额超出了allowed 的限制,allowed[_from][msg.sender] -= _value;这段代码将导致的溢出。

这个问题本质上是一个逻辑上的漏洞,进而引发了溢出漏洞。但可以通过规避溢出漏洞的方式来规避该类问题:

转账之前对allowed进行校验。

使用safeMath等安全的方式进行运算。

编辑:郭竞
分享到:

相关新闻