Smartmesh项目是一个基于区块链的物联网底层协议,能让智能手机、智能设备等不通过互联网就可以相互连接的软件,smartmesh内置区块链轻节点,扩展闪电与雷电等区块链二级架构网络协议实现代币的无网微支付。
据其官网介绍,基于区块链代币的激励,smartmesh可以自组织形成一个具有弹性、去中心化、能够自我修复的mesh network,提供比互联网更高的近场速度和带宽,并且它通常是免费的。目前已上线了4家交易所,分别是OKEX、CEX.COM、火币Pro、比特儿海外版。
火币Pro公告,SMT项目方反馈2018年4月15日凌晨发现其交易存在异常问题,经初步排查,SMT的以太坊智能合约存在漏洞。火币Pro也同期检测到TXID为0x0775e55c402281e8ff24cf37d6f2079bf2a768cf7254593287b5f8a0f621fb83的异常。
受此影响,火币Pro现决定暂停所有币种的充提币业务。随后,火币Pro又发布公告称暂停SMT/USDT、SMT/BTC和SMT/ETH的交易。
尊敬的用户:应SmartMesh (SMT)项目方的要求,火币Pro暂停SMT/USDT、SMT/BTC和SMT/ETH的交易,具体开放时间另行通知。火币Pro会随时与项目方保持联络,待项目方有最新进展我们会第一时间公布,给您带来的不便深表歉意,感谢您的理解与支持!
SMT事件后,OKEx也紧接着暂停了ERC20币种充值。
SMT官方微博发布公告,公布最新进展:
第一 数字公布经过SmartMesh官方技术团队整理,由本次漏洞产生的Token增减、交易等数据如下。
1、由ETH智能合约漏洞生成的“假币”总数:65,133,050,195,990,400,000,000,000,000,000,000,000,000,000,000,000,000,000,000.891004451135422463
2、由黑客地址转至交易所的“假币”总数:65,300,289
3、在交易所交易的“假币”总数:16,638,887(待最终确认)黑客地址转入交易所的假币中,未被交易的假币已全被交易所冻结。
第二 销毁“假币”由此次“以太坊智能合约溢出漏洞”生成并已经流通于交易所的“假币”, SmartMesh基金会将拿出对等的SMT数量冻结及销毁,以弥补所造成的损失,保持SMT的总数保持在3,141,592,653的数值。
第三 关于重新开通交易所交易SmartMesh团队已与Huobi、Gate、OKEx、CEX等多家交易所已经沟通、协调,就重新开通SMT交易对交易的具体时间以及其他相关措施,双方进行了深入交流。团队与多家交易所初步达成协议,将共同携手解决本次漏洞造成的损失,竭尽全力维护社区利益和SMT的价值。
第四 关于重新开通交易所充提币功能我们会根据以下事项进度,决定SMT在各交易所充提币功能的恢复时间。
1、排查完所有与本次“以太坊智能合约溢出漏洞事件”相关的异常账户
2、销毁由此次时间生成的多余的SMT
3、交易所完成ERC-20的全部审核事项当以上事项处理完毕之后,交易所充提币功能将迅速开启。
据区块链安全专业团队PeckShield 发布的安全报告,黑客利用 in-the-wild 手段抓取以太坊 ERC-20 智能合约中的「BatchOverFlow」这个整数溢出漏洞来进行攻击。利用这个漏洞,黑客可以通过转账的手段生成合约中不存在的、巨量的 Token 并将其转入正常账户,账户中收到的 Token 可以正常地转入交易所进行交易,与真的 Token 无差别。
PeckShield 的安全预警报告中提到了该漏洞的具体细节,这个漏洞出现在ERC20智能合约的batchTransfer 函数当中,仔细分析对应的智能合约后,发现 proxyTransfer() 函数存在一个经典的整数溢出问题。
如上图所示,_fee 和 _value_ 这两个输入参数都能被攻击者控制,如果 _fee + _value 的结果正好为 0(也就是溢出的情况),第206行的检查将会失效;这意味着攻击者不需要任何Token,就可以向一个地址转入大量的Token(第214行);同时根据第217行的代码,相当数量的手续费也将发送给 msg.sender。
随后 PeckShield 团队利用自动化系统扫遍了以太坊智能合约并对它们进行分析。结果发现,有超过 12 个 ERC-20智能合约都存在BatchOverFlow安全隐患。其中包括已经在交易所上进行交易币种。