今天有媒体报道韩国国家级区块链项目ICON(ICX)智能合约代码被爆代码存在安全漏洞。BCST区块链安全研究所通过平台的智能合约审计系统分析发现,还有一个智能合约YGGDRASH (YEED)也存在同样的漏洞,该项目并且已经上了Huobi,Bilaxy,ForkDelta,Idex等交易所,目前已经不能正常转账交易了。
接下来我们一起看下两个合约有漏洞的部分代码截图
---------ICON(ICX)的部分代码----------
---------YGGDRASH (YEED)的部分代码----------
对比可以看出,两个合约都存在enableTokenTransfer,disableTokenTransfer方法,两个方法都有onlyFromWallet权限判断,modifier onlyFromWallet {require(msg.sender != walletAddress);}
按理这个方法是只有walletAddres可以调用,正确逻辑应该是msg.sender==walletAdress而不是不等于
查询两个合约的创建时间,ICX比YEED要更早创建,由此可以看出,YEED是直接拷贝了ICX的部分代码,并且完全没有经过审计流程就上了交易所。
我们建议,项目方立即对合约进行快照,并升级合约,发布新合约前找专业的团队进行审计。
此次漏洞还是因为权限判断问题,这个权限问题我们此前的文章里面都有提及过。幸运的是,这次漏洞影响的只有转账功能,没有造成丢币损失。但是,这么大一个项目,竟然出现这样的漏洞问题,是项目方的疏忽?还是技术方面的失误?值得我们深思。
最后,BCST区块链安全研究所再次强烈建议,为了维护广大投资者的利益,所有上交易所的项目合约应该经过严格审计流程,避免由于一时疏忽给项目给投资者造成无法挽回的损失。