Vulnérabilité dans les jetons ERC20
Actus

Vulnérabilité dans les jetons ERC20

Une nouvelle vulnérabilité a été découverte dans certains jetons Ethereum ERC-20 et pourrait affecter certains de ces jetons. Le bug, appelé batchOverFlow, a été décrit par un utilisateur de Medium dans l’article suivant : New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018-10299).

Comme il l’explique dans son article, il décrit une transaction inhabituelle sur le jeton BEC (BeautyChain), où quelqu’un aurait transféré un montant extrêmement important.

Son étude montre que ce transfert provient d’une attaque in-the-wild qui exploite une vulnérabilité précédemment inconnue dans le contrat. Comme le montre l’image, avec une _valeur extrêmement grande et deux _récepteurs, il est possible de faire déborder la valeur du montant à zéro. Dans les lignes suivantes de la méthode batchTransfer, les fonctions requises sont toujours vraies, mais aucun jeton ne sera retiré à l’expéditeur et le montant _value sera ajouté aux récepteurs sans frais pour l’expéditeur.

Plus tôt dans la journée, plusieurs échanges ont dû être temporairement gelés, car cela pourrait amener les utilisateurs disposant de grandes quantités de jetons à manipuler le marché.

Selon les tweets de Poloniex et HitBTC, ils ont réactivé les dépôts de jetons ERC-20, mais les transferts sont toujours désactivés.

Mise à jour

Deux jours plus tard, le groupe PeckShield, auteur du billet sur la vulnérabilité des jetons, a signalé un autre nouveau bogue utilisant la même technique de débordement. Dans l’article  » Integer Overflow (i.e., proxyOverflow Bug) Found in Multiple ERC20 Smart Contracts (CVE-2018-10376) « , ils décrivent en détail comment deux paramètres d’entrée dans la méthode proxyTransfer pourraient provoquer un débordement de la valeur calculée _fee + _value passant à 0. Dans les smart contracts, il est important de prendre cela en compte et il est recommandé d’utiliser des fonctions telles que celles de la bibliothèque SafeMath d’OpenZeppelin.

Comments are off this post!