L’ETHW confirme l’exploitation de la vulnérabilité du contrat et rejette les allégations d’attaque par relecture

La chaîne de preuve de travail (PoW) Post-Ethereum Merge ETHW a décidé de réprimer les affirmations selon lesquelles elle avait subi une attaque de relecture en chaîne au cours du week-end.

Le cabinet d’audit de contrats intelligents BlockSec a signalé ce qu’il décrit comme une attaque de relecture qui a eu lieu le 16 septembre, au cours de laquelle les attaquants ont récolté des jetons ETHW en rejouant les données d’appel de la chaîne de preuve de participation (PoS) d’Ethereum sur la chaîne Fourche Ethereum PoW.

Selon BlockSec, la cause première de l’exploit était due au fait que le pont inter-chaînes Omni sur la chaîne ETHW utilisait l’ancien ID de chaîne et ne vérifiait pas correctement l’ID de chaîne correct du message inter-chaînes.

Le réseau principal et les réseaux de test d’Ethereum utilisent deux identifiants pour des utilisations différentes, à savoir un identifiant de réseau et un identifiant de chaîne (chainID). Les messages peer-to-peer entre les nœuds utilisent l’ID de réseau, tandis que les signatures de transaction utilisent l’ID de chaîne. EIP-155 introduit chainID comme moyen d’empêcher les attaques par relecture entre les blockchains ETH et Ethereum Classic (ETC).

BlockSec a été le premier service d’analyse à signaler l’attaque par relecture et a notifié l’ETHW, qui à son tour a rapidement rejeté les affirmations initiales selon lesquelles une attaque par relecture avait été menée en chaîne. ETHW a tenté d’informer Omni Bridge de l’exploit au niveau du contrat :

L’analyse de l’attaque a révélé que l’exploiteur avait commencé par transférer 200 WETH via le pont Omni de la chaîne Gnosis avant de rejouer le même message sur la chaîne PoW, rapportant 200ETHW supplémentaires. Cela a entraîné l’épuisement du solde du contrat de chaîne déployé sur la chaîne PoW.

En relation: Chaînes croisées dans le collimateur : les hacks appellent de meilleurs mécanismes de défense

L’analyse par BlockSec du code source du pont Omni a montré que la logique de vérification de l’ID de chaîne était présente, mais l’ID de chaîne vérifié utilisé dans le contrat a été extrait d’une valeur stockée dans le stockage nommé unitStorage.

L’équipe a expliqué qu’il ne s’agissait pas du bon chainID collecté via l’opcode CHAINID, qui a été proposé par EIP-1344 et exacerbé par le fork résultant après la fusion Ethereum :

« Cela est probablement dû au fait que le code est assez ancien (utilisant Solidity 0.4.24). Le code fonctionne bien tout le temps jusqu’à la bifurcation de la chaîne PoW.

Cela a permis aux attaquants de récolter ETHW et potentiellement d’autres jetons appartenant au pont sur la chaîne PoW et de continuer à les échanger sur des marchés répertoriant les jetons pertinents. Cointelegraph a contacté BlockSec pour vérifier la valeur extraite lors de l’exploit.

Suite au succès de l’événement Merge d’Ethereum qui a vu la transition de la blockchain du contrat intelligent de PoW à PoS, un groupe de mineurs a décidé de poursuivre la chaîne PoW via un hard fork.