Capitalisation boursière: $2.2006T 0.82%
Volume(24h): $38.5475B -31.41%
Indice de peur et de cupidité:

36 - Peur

  • Capitalisation boursière: $2.2006T 0.82%
  • Volume(24h): $38.5475B -31.41%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $2.2006T 0.82%
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
Top Cryptospedia

Choisir la langue

Choisir la langue

Sélectionnez la devise

Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos

Qu’est-ce qu’une attaque de réentrée et comment les contrats intelligents peuvent-ils s’en défendre ?

Re-entrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to recursively withdraw funds before state updates, as seen in the $60M DAO hack.

Nov 13, 2025 at 03:40 am

Comprendre les attaques de réentrée dans les contrats intelligents

1. Une attaque de réentrée se produit lorsqu'un contrat malveillant rappelle à plusieurs reprises une fonction vulnérable d'un autre contrat avant la fin de l'exécution initiale. Cet exploit profite de l'ordre dans lequel les changements d'état et les appels externes sont exécutés.

2. L'exemple le plus tristement célèbre est le piratage DAO de 2016, où un attaquant a drainé plus de 60 millions de dollars en retirant de manière récursive des fonds d'un contrat qui n'avait pas mis à jour les soldes avant d'envoyer de l'Ether.

3. Ces attaques ciblent généralement les fonctions qui effectuent des appels externes vers des contrats non fiables tout en conservant des variables d'état critiques dans un état incohérent.

4. Pendant l'appel récursif, la fonction de repli ou de réception de l'attaquant déclenche à nouveau la même logique de retrait, contournant ainsi les contrôles d'accès ou les vérifications de solde.

5. La principale vulnérabilité réside dans la violation du modèle de vérification des effets et des interactions, dans lequel les modifications d'état doivent toujours précéder les appels externes pour empêcher toute manipulation pendant l'exécution.

Modèles vulnérables courants dans Solidity

1. Les fonctions qui envoient de l'Ether ou des jetons à des adresses contrôlées par l'utilisateur sans mettre à jour au préalable la comptabilité interne sont des cibles privilégiées pour la réentrée.

2. Les contrats utilisant des appels de bas niveau, comme les appels avec des transferts Ether natifs, sont particulièrement menacés car ils transfèrent tout le gaz restant, permettant une logique de rappel complexe.

3. La logique qui repose sur les validations post-appel échoue lorsque l'appel lui-même déclenche une entrée récursive, rendant ces vérifications inefficaces jusqu'à ce que les dommages soient causés.

4. Les structures successorales peuvent involontairement exposer des fonctions si les contrats parentaux ne prévoient pas de protections appropriées, même si les contrats enfants semblent sécurisés.

5. Les bibliothèques ou les modèles de proxy peuvent propager des vulnérabilités si le mécanisme d'appel délégué permet une corruption de l'état via des configurations de stockage partagées.

Mécanismes de défense efficaces

1. Implémentez rigoureusement le modèle Contrôles-Effets-Interactions : validez toujours les entrées, mettez à jour les variables d'état, puis procédez aux appels externes.

2. Utilisez des gardes de réentrance provenant de bibliothèques établies comme ReentrancyGuard d'OpenZeppelin, qui utilisent des verrous mutex pour bloquer les entrées récursives.

3. Préférez le transfert de fonds par virement ou envoi plutôt que par appel , car ces méthodes limitent le transfert de gaz et réduisent la surface d'attaque.

4. Adopter des modèles de paiement pull-over-push dans lesquels les utilisateurs réclament des fonds plutôt que de les voir automatiquement envoyés, éliminant ainsi les risques d'appels sortants.

5. Appliquez des outils d'analyse statique rigoureux et une vérification formelle pendant le développement pour détecter les chemins de récursion potentiels avant le déploiement.

Foire aux questions

Qu’est-ce qui rend une fonction de repli dangereuse dans les scénarios de réentrée ? Une fonction de secours devient dangereuse lorsqu'elle contient une logique qui réinvoque les fonctions métier du contrat appelant. Si le contrat d'origine n'a pas mis à jour son état avant de passer un appel externe, ce déclencheur récursif peut exploiter des soldes ou des autorisations obsolètes.

La réentrée peut-elle se produire à travers plusieurs interactions contractuelles ? Oui, la réentrée entre fonctions est possible lorsque différentes fonctions au sein du même contrat accèdent à un état partagé sans synchronisation appropriée. Un attaquant pourrait déclencher une fonction qui appelle en externe, puis utiliser la solution de secours pour entrer une deuxième fonction vulnérable avant que les mises à jour d'état ne se produisent.

Les contrats non-Ether sont-ils à l’abri de la réentrée ? Non, les contrats de jetons gérant les transferts ERC-20 peuvent également être exploités. Si un transfert de jeton déclenche un hook de récepteur (comme approbation + rappel) et que le contrat de réception manipule l'état de l'expéditeur en cours de transfert, des exploits récursifs similaires apparaissent.

Comment les mises à niveau du compilateur aident-elles à atténuer la réentrée ? Les versions plus récentes de Solidity incluent des valeurs par défaut plus sûres et des avertissements pour les anti-modèles connus. Par exemple, des spécifications de visibilité explicites et des règles améliorées en matière d’allocation d’essence réduisent les comportements involontaires. Cependant, les fonctionnalités du compilateur ne peuvent à elles seules éliminer les défauts logiques nécessitant une discipline architecturale.

Clause de non-responsabilité:info@kdj.com

Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!

Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.

Connaissances connexes

Qu’est-ce que la blockchain modulaire et pourquoi est-ce la prochaine grande tendance ?

Qu’est-ce que la blockchain modulaire et pourquoi est-ce la prochaine grande tendance ?

Jun 20,2026 at 02:19am

Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % au cours d'une seule séance de négociation pendant les p...

Qu'est-ce que l'abstraction de compte et pourquoi est-elle importante pour Web3 ?

Qu'est-ce que l'abstraction de compte et pourquoi est-elle importante pour Web3 ?

Jun 17,2026 at 02:39pm

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Qu'est-ce que la preuve zéro connaissance et comment protège-t-elle la confidentialité ?

Qu'est-ce que la preuve zéro connaissance et comment protège-t-elle la confidentialité ?

Jun 17,2026 at 12:59pm

Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % au cours d'une seule séance de négociation pendant les p...

Qu'est-ce que zk-Rollup et pourquoi tout le monde en parle ?

Qu'est-ce que zk-Rollup et pourquoi tout le monde en parle ?

Jun 25,2026 at 06:39am

Modèles de volatilité du marché 1. Les mouvements de prix de Bitcoin présentent souvent de fortes fluctuations intrajournalières dépassant 5 % lors d&...

Qu'est-ce que Chainlink et comment fonctionnent les oracles Blockchain ?

Qu'est-ce que Chainlink et comment fonctionnent les oracles Blockchain ?

Jun 19,2026 at 01:00pm

Modèles de volatilité du marché 1. Des fluctuations de prix supérieures à 15 % sur une fenêtre de 24 heures se produisent régulièrement sur les princi...

Qu'est-ce qu'un Oracle dans la Blockchain et pourquoi est-il nécessaire ?

Qu'est-ce qu'un Oracle dans la Blockchain et pourquoi est-il nécessaire ?

Jun 21,2026 at 07:39pm

Définition et fonctionnalités de base 1. Un oracle dans la blockchain est un service tiers de confiance qui fournit des données externes aux contrats ...

Qu’est-ce que la blockchain modulaire et pourquoi est-ce la prochaine grande tendance ?

Qu’est-ce que la blockchain modulaire et pourquoi est-ce la prochaine grande tendance ?

Jun 20,2026 at 02:19am

Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % au cours d'une seule séance de négociation pendant les p...

Qu'est-ce que l'abstraction de compte et pourquoi est-elle importante pour Web3 ?

Qu'est-ce que l'abstraction de compte et pourquoi est-elle importante pour Web3 ?

Jun 17,2026 at 02:39pm

Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...

Qu'est-ce que la preuve zéro connaissance et comment protège-t-elle la confidentialité ?

Qu'est-ce que la preuve zéro connaissance et comment protège-t-elle la confidentialité ?

Jun 17,2026 at 12:59pm

Modèles de volatilité du marché 1. Les fluctuations de prix Bitcoin dépassent souvent 5 % au cours d'une seule séance de négociation pendant les p...

Qu'est-ce que zk-Rollup et pourquoi tout le monde en parle ?

Qu'est-ce que zk-Rollup et pourquoi tout le monde en parle ?

Jun 25,2026 at 06:39am

Modèles de volatilité du marché 1. Les mouvements de prix de Bitcoin présentent souvent de fortes fluctuations intrajournalières dépassant 5 % lors d&...

Qu'est-ce que Chainlink et comment fonctionnent les oracles Blockchain ?

Qu'est-ce que Chainlink et comment fonctionnent les oracles Blockchain ?

Jun 19,2026 at 01:00pm

Modèles de volatilité du marché 1. Des fluctuations de prix supérieures à 15 % sur une fenêtre de 24 heures se produisent régulièrement sur les princi...

Qu'est-ce qu'un Oracle dans la Blockchain et pourquoi est-il nécessaire ?

Qu'est-ce qu'un Oracle dans la Blockchain et pourquoi est-il nécessaire ?

Jun 21,2026 at 07:39pm

Définition et fonctionnalités de base 1. Un oracle dans la blockchain est un service tiers de confiance qui fournit des données externes aux contrats ...

Voir tous les articles

User not found or password invalid

Your input is correct