Vulnerabilidad en tokens ERC20

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.

Sientete libre de compartir

Sobre nosotros David Albela

David Albela, Ingeniero de Software y Arquitecto Blockchain, actualmente está trabajando en el Blockchain Lab de Grant Thornton.Ha estado trabajando en el desarrollo y despliegue de servidores web con amplia experiencia en arquitecturas para servicios web RESTful. Usuario GNU/Linux y cypherpunk, sus intereses van desde la ciberseguridad y la criptografía a las criptomonedas como Bitcoin y Ethereum así como todo el ecosistema Blockchain.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Solve : *
14 − 13 =


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.