Aller au contenu
Fondé MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archive des incidents de sécurité dans les cryptomonnaies — piratages, exploits, défaillances de ponts et rug pulls, documentés avec des preuves on-chain.

Dossier № 002Réentrance

Hack par réentrance de The DAO

The DAO a perdu 3,6M ETH (50 M$) à un bug de réentrance classique, le vol qui a divisé Ethereum en ETH et Ethereum Classic et réécrit le dev Solidity.

Date
Victime
The DAO
Chaîne(s)
Statut
Partiellement récupéré

Le 17 juin 2016, un attaquant a drainé 3,6 millions d'ETH — environ 50 millions de dollars à l'époque — de The DAO, un fonds d'investissement décentralisé construit sur Ethereum. The DAO avait levé plus de 150 millions de dollars lors de sa vente de jetons juste un mois plus tôt, en faisant l'événement de crowdfunding le plus important de l'histoire jusque-là.

Ce qui s'est passé

La fonction de retrait de The DAO suivait un pattern non sécurisé : elle envoyait l'ETH à l'appelant avant de mettre à jour le solde interne de l'appelant. Lorsque le destinataire était un contrat, Ethereum invoquait la fonction fallback du destinataire à réception — et ce fallback pouvait rappeler la fonction de retrait originale avant que le solde ne soit décrémenté.

Le contrat de l'attaquant faisait exactement cela en boucle : recevoir ETH → rentrer dans le retrait → recevoir ETH → rentrer → répéter. Le temps que le solde soit finalement mis à jour, les mêmes jetons DAO avaient drainé le contrat de nombreuses fois. Les fonds ont coulé dans un « child DAO » contrôlé par l'attaquant, où un verrouillage temporel intégré empêchait un retrait immédiat.

Conséquences

  • Vitalik Buterin et la majorité de la communauté Ethereum précoce ont soutenu un hard fork pour annuler le vol.
  • Le 20 juillet 2016, la chaîne principale Ethereum a exécuté le fork, envoyant les fonds volés à un contrat de récupération depuis lequel les détenteurs de jetons DAO pouvaient racheter de l'ETH.
  • Une minorité d'utilisateurs a refusé, citant l'immuabilité comme principe non négociable. Ils ont continué la chaîne originale sous le nom Ethereum Classic (ETC), qui se négocie encore aujourd'hui.

Pourquoi c'est important

The DAO est l'incident fondateur de la sécurité des contrats intelligents. Il a établi :

  • Le pattern de réentrance comme le bug Solidity canonique — chaque checklist d'audit commence encore par lui.
  • Le pattern « checks-effects-interactions » comme mitigation standard : mettre à jour l'état avant de faire des appels externes.
  • La ligne de faille philosophique entre immuabilité stricte et gouvernance pragmatique qui a façonné la conception de réponse d'urgence de chaque protocole depuis.

Neuf ans plus tard, l'incident Curve de 2023 et Penpie ont montré que la classe de bug originale continue de trouver de nouvelles façons de récidiver.

Sources & preuves on-chain

  1. [01]blog.chain.linkhttps://blog.chain.link/reentrancy-attacks-and-the-dao-hack/
  2. [02]coindesk.comhttps://www.coindesk.com/consensus-magazine/2023/05/09/coindesk-turns-10-how-the-dao-hack-changed-ethereum-and-crypto
  3. [03]gemini.comhttps://www.gemini.com/cryptopedia/the-dao-hack-makerdao

Dépôts liés