Coldcard, le bug caché depuis mars 2021 : 70 millions de dollars en Bitcoin disparus en 41 minutes

Faille Coldcard depuis 2021 : 70 millions $ en Bitcoin volés. Découvrez les modèles touchés par ce bug et comment sécuriser vos fonds avec une nouvelle seed.

Coldcard, le bug caché depuis mars 2021 : 70 millions de dollars en Bitcoin disparus en 41 minutes
Vulnérabilités

Image d’illustration générée par IA

Le vol du 30 juillet : 1 196 adresses vidées avec une seule signature

Le 30 juillet dernier, entre 18 h 39 et 19 h 20 UTC, 1 196 adresses Bitcoin ont été vidées les unes après les autres. La rafale n’a duré que 41 minutes et a rapporté 1 082,65 BTC, soit environ 70,2 millions de dollars au cours du moment. Galaxy Research a cartographié l’opération et l’a reliée à une vulnérabilité dans le firmware des portefeuilles matériels Coldcard, produits par l’entreprise canadienne Coinkite.

Toutes les transactions partageaient le même schéma : des frais de 30 sat/vB et aucun output de change. Une signature on-chain répétitive qui, selon les analystes, pourrait identifier l’exécutant, même si ce schéma n’est pas en soi une preuve d’activité malveillante et pourrait apparaître dans des mouvements légitimes normaux.

La faille : du générateur matériel au PRNG logiciel

La faille remonte à mars 2021. Cette année-là, une erreur d’intégration dans le firmware de Coldcard a commencé à rediriger la génération de la seed non plus vers le véritable générateur matériel de nombres aléatoires (TRNG) de la puce STM32, mais vers un PRNG logiciel déterministe appelé Yasmarang. La macro MICROPY_HW_ENABLE_RNG était définie à zéro, mais la bibliothèque libngu vérifiait seulement son existence, sans contrôler sa valeur. Résultat : le fallback logiciel se déclenchait toujours.

L’entropie effective chute ainsi à environ 40 bits sur les modèles Mk3 et à 72 bits sur les Mk4, Mk5 et Q, bien loin des 128 bits attendus pour une seed BIP‑39 de 12 mots. Quiconque parvient à lier l’identifiant du dispositif, l’état du timer et l’historique des appels au générateur peut reproduire la seed hors ligne et dérober les fonds, sans aucun accès physique.

Block, l’équipe de sécurité qui a analysé le bug, a fixé des bornes supérieures conditionnelles de 2^40,7 et 2^73,3, tout en précisant que la seconde valeur n’équivaut pas à 73 bits de sécurité cryptographique.

Dispositifs concernés et actions obligatoires

Toutes les seeds créées avec les versions de firmware suivantes sont vulnérables :

  • Mk2 et Mk3 : de la 4.0.0 à la 4.1.9 (corrigées à partir de la 4.2.0) ;
  • Mk4 et Mk5 : versions antérieures à la 5.6.0 ;
  • Q : versions antérieures à la 1.5.0Q ;
  • build Edge : versions antérieures à la 6.6.0X (Mk4/5) et à la 6.6.0QX (Q).

TAPSIGNER, OPENDIME et SATSCARD utilisent des bases de code distinctes et ne sont pas concernés.

Coinkite a publié un firmware d’urgence pour tous les modèles dès le 31 juillet. La mise à jour ne répare pas les seeds déjà générées. Quiconque détient des bitcoins sur une seed créée avec un firmware vulnérable doit suivre deux étapes : générer une nouvelle seed sur un appareil mis à jour et y transférer immédiatement tous les fonds. Restaurer l’ancienne seed sur un portefeuille neuf ou mis à jour ne sert à rien : la faiblesse réside dans les mots générés à l’époque.

Une seed obtenue avec au moins 50 lancers de dé équitables, indépendants et privés n’est pas affectée par le bug. Si le nombre ou la confidentialité des lancers est incertain, la migration reste tout de même recommandée. Une passphrase BIP‑39 robuste crée un portefeuille séparé, mais Coinkite recommande néanmoins de remplacer la seed sous-jacente. Les schémas multi-signatures ne protègent que lorsque le quorum n’est pas entièrement composé de dispositifs vulnérables.

Le contexte : de la recherche « Ill Bloom » à une signature anonyme sur la blockchain

La divulgation de la faille intervient quelques semaines après la recherche « Ill Bloom » de Coinspect (publiée début juillet), qui avait déjà mis en évidence un autre bug de PRNG faible dans d’anciens portefeuilles logiciels. Dans ce cas, les pertes, enregistrées depuis mai sur Bitcoin, Ethereum, Tron, Rootstock et Polygon, dépassaient les 5 millions de dollars.

Aucun nom n’a été cité à propos du vol du 30 juillet. Galaxy a isolé la signature récurrente, mais il n’existe pas encore de preuve publique de la reconstruction d’une seule seed associée à l’une des adresses vidées. L’identité de l’attaquant reste inconnue, tandis que les utilisateurs de Coldcard se précipitent pour vérifier la date de création de leur seed et, dans le doute, vider leurs portefeuilles avant que quelqu’un d’autre ne le fasse.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

Retour à l'accueil

Dernières actualités cybersécurité

Toutes les actualités cybersécurité →