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 № 203Réentrance

Bug d'IBC Hooks réintroduit sur Astroport

Astroport sur Terra a perdu 6,4 M$ via une réentrance d'IBC hooks corrigée en avril puis réintroduite en juin. ASTRO a chuté de 60 %.

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

Le 30 juillet 2024, le DEX basé sur Cosmos Astroport — déployé sur Terra (Phoenix) — a perdu environ 6,4 millions de dollars via une vulnérabilité de réentrance dans le chemin de callback de timeout des IBC hooks. La vulnérabilité avait été identifiée et corrigée en avril 2024 puis accidentellement réintroduite dans une mise à jour de juin. Les validateurs Terra ont arrêté la chaîne en réponse.

Ce qui s'est passé

Le flux de dépôt et de trade d'Astroport sur Terra utilisait des IBC hooks — une primitive Cosmos qui permet aux messages inter-chaînes de déclencher l'exécution de contrats sur la chaîne réceptrice. Spécifiquement, lorsqu'un transfert IBC vers Astroport expirait, le callback de timeout du protocole gérait la logique de remboursement.

La vulnérabilité résidait dans ce callback de timeout : sous certaines conditions, un attaquant pouvait réentrer les contrats d'Astroport en plein callback et faire apparaître des tokens à partir de rien — en manipulant la comptabilité du protocole dans la fenêtre où le timeout était traité mais où l'état n'avait pas encore été finalisé.

L'historique complet du bug :

  • Identifié et corrigé en avril 2024 — l'équipe d'Astroport avait repéré le problème et livré un correctif.
  • Réintroduit dans une mise à jour de juin 2024 — le correctif a été par inadvertance annulé ou écrasé lors de la fusion de modifications ultérieures.
  • Exploité le 30 juillet 2024 — l'attaquant (vraisemblablement au courant du problème historique et surveillant sa réapparition) a drainé environ 6,4 M$.

Le drainage incluait :

  • 60 millions de tokens ASTRO (l'actif natif d'Astroport)
  • 3,5 M$ USDC
  • 500 K$ USDT
  • 2,7 BTC

Conséquences

  • Les validateurs Terra ont arrêté la chaîne quelques heures après l'identification publique de l'exploit — exerçant la même capacité de pause d'urgence qui avait été utilisée pendant l'effondrement original de Terra.
  • Environ 33 millions d'ASTRO avaient été pontés vers Neutron avant l'arrêt ; ces tokens ont par la suite été saisis pour le Trésor d'Astroport.
  • 13 millions d'ASTRO ont été échangés contre ~124 000 axlUSDC et pontés vers Ethereum.
  • 20 millions d'ASTRO restant sur Terra ont été blacklistés et rendus immobilisables.
  • L'adresse Terra de l'attaquant a été blacklistée de toute transaction supplémentaire.
  • La vulnérabilité IBC Hook a été re-corrigée (cette fois, vraisemblablement avec des tests de régression pour empêcher toute réintroduction future).

Pourquoi c'est important

L'incident d'Astroport est l'un des cas les plus clairs pour pourquoi les vulnérabilités corrigées exigent un test de régression explicite. Le correctif d'avril 2024 avait clairement été validé à l'époque ; la mise à jour de juin a introduit du nouveau code sans vérifier que les correctifs historiques étaient préservés. Résultat : une vulnérabilité connue a vécu en production pendant environ 8 semaines avant que quelqu'un ne l'exploite.

Leçons structurelles :

  1. Les bugs corrigés devraient être ajoutés à la suite de tests de régression permanente du protocole, pas seulement résolus comme des correctifs ponctuels.
  2. Les revues de mises à jour devraient inclure une vérification explicite que les chemins de code précédemment corrigés ont toujours leurs correctifs en place.
  3. Les divulgations publiques de vulnérabilités (même après correction) créent une conscience chez les attaquants — les opérateurs sophistiqués monitorent les historiques de commits de correctifs pour chercher des opportunités d'attaquer des réintroductions ou des problèmes connexes. L'écart de 8 semaines entre la mise à jour de juin et l'exploit de juillet suggère un monitoring délibéré plutôt qu'une coïncidence.

La réponse d'arrêt par validateurs est aussi notable — l'ensemble de validateurs plus petit et plus coordonné de Terra a pu prendre une action qui ne serait pas possible sur Ethereum ou Solana. Comme avec Cetus sur Sui en 2025, l'intervention au niveau chaîne par les validateurs est une défense viable sur les chaînes plus petites mais s'accompagne de compromis sur la décentralisation que la communauté accepte (ou non) au cas par cas.

Sources & preuves on-chain

  1. [01]quillaudits.comhttps://www.quillaudits.com/blog/hack-analysis/astroport-hack
  2. [02]theblock.cohttps://www.theblock.co/post/308440/attacker-exploits-ibc-hooks-vulnerability-to-steal-tokens-on-terra-blockchain
  3. [03]cryptoslate.comhttps://cryptoslate.com/terra-resumes-operations-after-5m-security-breach-triggers-astroport-token-plunge/

Dépôts liés