最近发现的一个编程错误可能使一些加密代币容易受到黑客的攻击。该漏洞让黑客得以将一个异常高的值传递给交易所,因而获得数量多得离谱的代币,这个问题已导致Okex交易所关闭了所有代币交易。
真正值得关注的是黑客的攻击方式。从上图可以看出,智能合约中的一行代码通过将cnt和_value相乘生成另一个值:amount(数额)。黑客转移了代币,将该值设置为8个10120,也就是说8后面63个零。这个值被传递后,代码溢出让黑客得以获得大量的代币。由于智能合约的“代码即法律”(code-is-law)原则,这每一次转移在技术上都是合法的。
一名研究人员在Medium上写道:“根本没有落实传统的知名的安全响应机制来补救这些易受攻击的合约!有鉴于此,我们进一步运行我们的系统来扫描和分析其他合约。我们的结果表明,十几个ERC20合约同样容易受到batchOverflow溢出漏洞的影响。”
作为回应,Okex关闭了所有ERC-20代币,但外面其他的交易所和代币易受这一漏洞的攻击。
Okex写道:“为了保护公众利益,我们决定暂停所有ERC-20代币的存款,直到该漏洞得到修复。此外,我们还联系了受影响的代币团队,开展调查,并采取必要的措施,以防止这种攻击。”
领取专属 10元无门槛券
私享最新 技术干货