Une vulnérabilité affectant Ethereum permet le vol d’ETH

Une vulnérabilité affectant Ethereum permet le vol d’ETH
Faits marquants:
  • La vulnérabilité est due à une « intégration problématique » de l’ERC-2771 et du standard Multicall.

  • L’échec a conduit au vol de 17 394 USDC et 87 ETH.

OpenZeppelin, une société spécialisée dans la sécurité des réseaux blockchain, a révélé une vulnérabilité critique dans l’intégration des standards ERC-2771 et Multicall dans Ethereum. Le problème a mis en danger de nombreux utilisateurs et projets, et a même permis le vol de fonds en éther (ETH) et en stablecoin USD Coin (USDC).

L’« intégration problématique » d’ERC-2771 et de Multicall décrite par OpenZeppelin dans sa déclaration affecte un large éventail de contrats intelligents, y compris ceux qui prennent en charge les jetons ERC-20 (utilisés par les stablecoins, par exemple) et ERC-721 (celui des non-stablecoins). jetons fongibles ou NFT).

Cette vulnérabilité a généré une potentielle attaque de type « usurpation d’adresse ». ou « parodie de mise en scène ». En effet, des attaques ont été enregistrées qui ont conduit au vol de 87 ETH (environ 205 000 USD, selon l’indice des prix CriptoNoticias) et 17 394 USDC.

Notamment La vulnérabilité a été détectée le 20 novembre. Open Zeppelin avait reçu un avertissement concernant la vulnérabilité de la part de l’équipe ThirdWeb, une entreprise qui fournit des solutions technologiques pour les projets dits web3. Le problème a été rendu public deux semaines plus tard afin qu’une solution puisse être trouvée avant de l’annoncer, comme cela arrive habituellement dans ces cas-là.

L’équipe OpenZeppelin « a rapidement validé que le problème n’est pas spécifique aux implémentations contenues dans la bibliothèque de contrats OpenZeppelin », a rapporté la société. En outre, ThirdWeb a reconnu deux cas de contrats intelligents concernés et a recommandé certaines mesures d’atténuation à ses clients.

Techniquement, c’est ainsi que fonctionne la vulnérabilité détectée par Open Zeppelin. Source : Ouvrir Zeppelin.

Comment identifier les risques et prévenir les attaques

Comme détaillé dans la déclaration, les contrats intelligents Ethereum qui implémentent à la fois Multicall et ERC-2771 sont vulnérables à « l’usurpation d’adresse arbitraire ». Cela permet aux attaquants de changer l’identité de l’expéditeuren utilisant des données trompeuses et en profitant d’une fonction spécifique appelée appel délégué depuis Multicall. En bref, ils pourraient usurper frauduleusement l’identité d’une autre personne ou entité.

Liste des contrats intelligents vulnérables à l’usurpation d’adresse publiée par ThirdWeb. Source : TroisièmeWeb.

Pour l’identification des contrats vulnérables, OpenZeppelin fournit des outils tels que Code Inspector. De même, ThirdWeb propose une plateforme pour s’enquérir de la sécurité des contrats intelligents mis en œuvre à l’aide de sa bibliothèque de contrats.

Certaines des mesures d’atténuation recommandées incluent la désactivation du transitaires confiance, suspendez les contrats si possible et encouragez les utilisateurs à révoquer les approbations d’autorisation. De plus, il est suggéré de préparer une mise à jour ou d’évaluer les options d’instantané pour ramener les contrats irrécupérables à un état auparavant sûr, indique le texte.

Entre-temps, OpenZeppelin a publié une mise à jour pour OpenZeppelin Contracts (versions 4.x et 5.x) qui permettent une utilisation sécurisée de Multicall avec ERC-2771. La nouvelle version de Multicall intègre une longueur de suffixe de contexte pour identifier et s’adapter aux appels de transitaires fiable, afin de minimiser les risques, expliquent-ils.

Dans le contexte d’Ethereum, Un « transitaire » est un contrat qui facilite les transactions entre utilisateurs et contrats intelligents. Ce contrat agit comme intermédiaire, relayant ou « transmettant » les transactions de l’utilisateur vers le contrat intelligent et vice versa.

Normes affectées par la vulnérabilité

La norme ERC-2771 sur Ethereum fait référence à une « Ethereum Comment Requirement » (ERC) qui définit une norme pour les transactions de méta-transaction. Au lieu que l’adresse de l’expéditeur dans une transaction soit directement celle de l’utilisateur, La norme ERC-2771 permet à un transitaire d’agir comme intermédiaire. L’expéditeur réel est vérifié par une signature dans les données de transaction.

Cette norme garantit que les informations sur l’expéditeur d’origine sont correctement transmises au contrat appelé. De plus, cela permet à un tiers de payer le gaz nécessaire au nom de l’émetteur initial de la transaction. Ainsi, il améliore l’efficacité et la convivialité des transactions sur le réseau Ethereum.

D’autre part, La norme « Multicall » ou ERC-6357, fait référence à un contrat intelligent qui permet plusieurs appels à des fonctions en une seule transaction. Au lieu d’envoyer des transactions distinctes pour chaque fonction que vous souhaitez exécuter, Multicall regroupe ces appels en une seule transaction, ce qui permet d’économiser des coûts de gaz.

Dans le contexte de la vulnérabilité discutée, l’intégration problématique de Multicall avec ERC-2771 dans certains contrats Ethereum a créé une vulnérabilité connue sous le nom de « usurpation d’adresse arbitraire ». Cette vulnérabilité permet aux attaquants de manipuler de manière malveillante la résolution de l’expéditeur, ce qui peut entraîner un vol de fonds ou d’autres activités frauduleuses.

Voir l’article original en espagnol

Audible
🎧 Découvrez le plaisir de l’écoute avec Audible d’Amazon ! Cliquez maintenant et obtenez votre premier livre audio GRATUIT. Ne manquez pas cette chance de transformer vos trajets en aventures épiques ! 📚