【得得预警】 四个Token惊爆逻辑漏洞
摘要: 继智能合约漏洞溢出问题引发了一系列损失过后,5月24号,有安全团队再次爆出漏洞溢出的问题(CVE-2018–11397, CVE-2018–11398),账户余额可以被任何人任意转出。
在继智能合约漏洞溢出问题引发了一系列损失过后,5月24号,有安全团队再次爆出漏洞溢出的问题(CVE-2018–11397, CVE-2018–11398),账户余额可以被任何人任意转出。
根据SECBIT实验室实验室风险预警平台显示,对该类问题进行监控,果不其然,发现了这个问题,更可怕的是,SECBIT监控系统显示,已经部署的四份合约存在相同的问题,并且四份合约的实现几乎一模一样。
以下为问题合约的地址sha3(address)计算得出的哈希结果:
问题合约代码中显示,在transferFrom函数中,由于缺少了对allowed的校验, 任何账户都可以对某一账户上的余额随意进行转账,黑客就可以利用这个漏洞将他人账户上的余额转入自己的账户中,从而获益。同时若转账金额超出了allowed 的限制,allowed[_from][msg.sender] -= _value; 这段代码将导致的溢出。
这个问题本质上是一个逻辑上的漏洞,进而引发了溢出漏洞。但可以通过规避溢出漏洞的方式来规避该类问题:
- 转账之前对allowed进行校验。
- 使用safeMath等安全的方式进行运算。
SECBIT实验室强烈呼吁项目团队在开发过程中对于开源的代码的使用一定要谨慎,千万不要随意复制,同时在合约部署之前,一定要寻求专业的团队进行审计,防患于未然。
以上数据均由SECBIT实验室提供。SECBIT实验室会快速预警线上合约漏洞,并对线上合约漏洞根据影响结果划分为四类:红色预警,黄色预警,黑色预警和白色预警。其中红色预警为token被盗的漏洞,白色黄色预警为由于逻辑漏洞引发的事故,黑色预警为导致整个通证经济坍塌的致命性事故,白色预警为常规预警。
(本文首发链得得App)
这就尴尬了