Elle était de longue date annoncée pour le 16 janvier 2019, l'importante mise à jour du réseau Ethereum, appelée Constantinople, sera finalement retardée après la découverte d'une faille de vulnérabilité.
Le cabinet d'audit de smart contracts, ChainSecurity, a indiqué mardi que des attaques en vue de voler les fonds des utilisateurs pourraient avoir lieu si l'Ethereum Improvement Proposal (EIP) 1283 était implémenté.
Des développeurs Ethereum se sont exprimés, se mettant à l'unisson pour repousser le hard fork prévu, le temps de régler les problèmes sur les contrats.
Parmi eux, Vitalik Buterin, le créateur d'Ethereum, mais également Hudson Jameson, Nick Johnson, et Evan Van Ness. Une nouvelle date sera déterminée lors d'un entretien vendredi.
Concernant la vulnérabilité en question, les développeurs ont estimé qu'il serait trop long de la corriger avant de déployer le hard fork. C'est donc annulé pour cette fois.
La vulnérabilité permet à un attaquant d'entrer plusieurs fois la même fonction, sans que l'utilisateur n'en soit averti. Dans ce cas, un attaquant pourrait ainsi retirer des fonds de manière infinie, sans même que l'utilisateur final ne s'en rende compte.
Joanes Espanol, CTO chez Amberdata, explique : "Imaginez que mon contrat dispose d'un fonction qui fait un appel vers un autre contrat. Si je suis un hacker et que je peux activer une fonction pendant que la fonction précédente est toujours en cours d'exécution, je peux peut-être retirer des fonds".
L'article de ChainSecurity explique qu’avant Constantinople, les opérations de stockage sur le réseau coûtaient 5000 gaz, soit plus que les 2300 gaz généralement envoyés lorsqu’un contrat est utilisé à l’aide de fonctions de transfert ou d’envoi. Cependant, si la mise à jour était mise en œuvre, les opérations de stockage ne coûteraient plus que 200 gaz. Un hacker peut utiliser l’allocation de 2300 gaz pour manipuler avec succès la variable du contrat vulnérable.
Ce n'est pas la première fois que le déploiement de Constantinople est décalé. Constantinople devait sortir l’année dernière, mais a été retardé après la découverte de problèmes lors du déploiement de la mise à jour sur le réseau de test Ropsten.