Vulnerabilidad en tokens ERC20

0
2374

Vulnerabilidad en tokens ERC20

 

Se ha descubierto una nueva vulnerabilidad en algunos tokens ERC-20 de Ethereum que podría afectar a algunos de estos tokens. El bug, denominado batchOverFlow ha sido descrito por un usuario de Medium en el siguiente artículo: New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018–10299).

 

 

Según explica en su artículo describe una transacción inusual en el token BEC (BeautyChain), donde alguien habría transferido una cantidad extremadamente enorme.

En su estudio se demuestra que dicha transferencia proviene de un ataque «in-the-wild» que explota una vulnerabilidad previamente desconocida en el contrato. Tal como se muestra en la imagen, con un valor para _value extremadamente grande y dos _receivers es posible provocar un overflow en el valor de amount a cero. En las siguientes líneas del método batchTransfer las funciones require siguen siendo ciertas pero al emisor no se le retiraría ningún token al emisor y se le añadiría la cantidad de _value a los receptores sin ningún coste para el emisor.

Durante el día de hoy varias casas de cambio han tenido que congelar temporalmente debido a que esto podría provocar que usuarios con grandes cantidades de tokens puedan manipular el mercado.

Según los tweets de Poloniex y HitBTC estos han habilitado de nuevo los depósitos de tokens ERC-20, pero las transferencias las mantienen deshabilitadas.

Actualización: Dos días después, el grupo de PeckShield, autores de la publicación de la vulnerabilidad en los tokens, han reportado otro nuevo bug utilizando la misma técnica de overflow. En el artículo «Integer Overflow (i.e., proxyOverflow Bug) Found in Multiple ERC20 Smart Contracts (CVE-2018–10376)» describe los detalles de como a través de dos parámetros de entrada en el método proxyTransfer se podría provocar un desbordamiento del valor calculado _fee + _value yendo a valer 0. En los smart contracts es importante tener en cuenta esto y se recomienda utilizar funciones como las de la librería SafeMath de OpenZeppelin.

Advertencia "La inversión en criptoactivos no está regulada, puede no ser adecuada para inversores minoristas y perderse la totalidad del importe invertido"