ERC20代币AMMBR(AMR)存在整型溢出漏洞,已被黑客用来大量造币

今日,降维安全实验室爆出AMR代币存在高危漏洞,攻击者可随意增发代币。随后BCSEC对此智能合约进行了一些分析。目前,BCSEC安全团队已确认漏洞真实存在而且已经被黑客利用。

漏洞说明

该漏洞是属于一类通用问题,在之前已经被peckshield公司爆出过,并将此漏洞命名为multiOverflow。 此漏洞是由于整型溢出问题引起,详细缺陷代码片段如下:

multiTransfer函数的应用场景是为了实现同时给多个地址转账而设立的,函数一共两个参数:destinations是要转给哪些地址,tokens是分别给每个地址转账的金额,其中代码里的totalTokensToTransfer变量是用于统计转给多个人一共要支出的币的总量。

但是由于给totalTokensToTransfer变量赋值的时候直接使用+=而且未进行溢出判断,将会导致当tokens参数非常大时,totalTokensToTransfer变量进行+=计算数次之后溢出为0。

最终会导致原交易发起人使用0个或者少量的币就可以给其他地址转入大量的代币。

已经被攻击

经过BCSEC团队统计,此合约目前已经被攻击5次

进行攻击的为以下地址: 0x632e68e19107b71fc6e6b94643cc96819017c118

最早一次发生攻击的时间为20小时前

类似的问题

BCSEC安全团队在分析的过程中发现另外一个名为Rocket Coin的ERC20代币(已流通于交易所)也存在类似的问题。

而且已经被利用

不过好在此ERC20合约项目方已不再使用,因为此项目目前已经切换到了自己实现的公链。

总结

ERC20的智能合约目前主要有几大模板,一般新上线的合约都是直接copy的别的合约的代码,在这里BCSEC安全团队呼吁:使用模板没有问题,但是尽量使用权威的模板,比如ConsenSys的Token-Factory,这些权威模板安全性相对较高。