Appuyez sur ESC pour fermer

Faille Coldcard : Comment vérifier et sécuriser vos BTC ?

Salut à tous ! Pour la majorité des crypto-enthousiastes, un hardware wallet, c'est un coffre-fort absolument inviolable. Eh ben, détrompez-vous. Il y a deux jours, quand j'ai vu passer les premiers rapports de drain sur des wallets "cold storage", j'ai eu un vrai coup de froid dans le dos.

La Coldcard de Coinkite, c'était pourtant le saint Graal ultime pour n'importe quel Bitcoin maximaliste qui se respecte. Et là... le naufrage total.

Bref, trêve de lamentations. Si vous stockez vos bitcoins sur une Coldcard, lisez ce qui suit avec une attention maximale. Je vais tout vous décortiquer à plat : des dessous cryptographiques du problème jusqu'au guide pas-à-pas pour sortir vos fonds de la zone de tir, dès maintenant.

⚠️ ALERTE CRITIQUE
Si vous avez généré votre seed phrase (phrase mnémonique) directement sur un appareil Coldcard entre mars 2021 et juillet 2026, VOS FONDS SONT DANS UNE ZONE DE RISQUE EXTRÊME.
Des bots malveillants poncent actuellement la blockchain en mode 100 % automatisé. Sautez directement à la section tutoriel et évacuez vos assets sans attendre !

1. Que s'est-il passé ? Anatomie d'un désastre

Pour la faire courte : le générateur de nombres aléatoires (RNG) dans le firmware des Coldcard ne crachait pas du tout du "hasard" comme il était censé le faire. Résultat des courses : des hackers ont réussi à reconstruire les clés privées et ont lancé un moissonnage en règle.

L'attaque se déroule par vagues successives. Et croyez-en mon expérience, cette troisième vague ne sera pas la dernière tant qu'il restera le moindre satoshi coincé sur ces adresses vulnérables.

Chronologie et ampleur de la casse

Vague d'attaqueDate de débutAdresses touchées (croissance)BTC siphonnés (par vague)Total BTC siphonnésÉquivalent USD (est.)
1ère vague30 juillet 2026~1 196~1 082,65 BTC1 082,65 BTC~$67,1M
2e vague31 juillet 2026+1 477 (total : 2 673)+76,16 BTC1 158,81 BTC~$71,8M
3e vague02 août (en cours)+1 912 (total : 4 585)+207,73 BTC1 366,54 BTC~$84,7M

Franchement, ça fait mal de voir ces chiffres. Près de 85 millions de dollars partis en fumée juste parce qu'un flag de compilation a sauté au build du firmware.

2. Qui est dans le collimateur ?

Soyons bien précis. Tous les utilisateurs de Coldcard ne sont pas impactés de manière indifférenciée.

Les modèles et versions directement ciblés :

  • Coldcard Mk3 : versions de firmware comprises entre v4.1.2 et v5.2.1.
  • Coldcard Mk4 : versions de firmware comprises entre v5.0.0 et v5.2.1.
  • Coldcard Q (y compris Q1) : toutes les builds initiales précédant le patch d'urgence de juillet 2026.

Cela dit, le vrai facteur déterminant, ce n'est pas tant le hardware, mais la façon dont la clé privée a été générée.

Vous êtes vulnérable si :

  • Vous avez déballé votre Coldcard toute neuve, cliqué sur « Create New Seed », accepté l'entropie par défaut du système et noté sagement vos 12 ou 24 mots.

Vous êtes (relativement) Safe si :

  • Vous avez généré votre seed via la méthode des Dice Rolls (lancer de dés physiques) directement sur l'appareil. C'est exactement le type de pratique Best Practice que je répète en boucle à mes équipes d'ingénieurs ! La physique du dé vient totalement court-circuiter le bug du RNG logiciel.
  • Vous avez importé une seed déjà créée sur un autre device offline sécurisé (par exemple via une stack Tails + Electrum ou un setup dédié sur Raspberry Pi).

3. Comment vérifier si votre wallet est compromis

Ok, minute papillon. On ne panique pas. Prenez votre device en main et déroulez ce petit diagnostic rapide.

Étape 1 : Check de la version du firmware et de la date --------------------------------------------------------------------------------

Branchez votre device (idéalement via un câble Power Only ou sur battery pack) et entrez votre code PIN.

Naviguez dans le menu : Advanced -> System Information -> Version.

Vérifiez le numéro de version. Si vous tournez par exemple sous v5.1.0 sur une Mk4 et que votre seed remonte à quelque part entre 2022 et 2024... c'est la mauvaise nouvelle : vous êtes directement exposé.

Étape 2 : Cross-check des adresses

Les chercheurs de chez Galaxy Research ont fait un boulot phénoménal. Ils ont sorti un rapport d'analyse complet et ont rendu publiques les listes de chemins de dérivation compromis.

Vous pouvez contrôler vos adresses publiques (xpub / zpub) à l'aide d'un script d'audit open source dispo directement sur le dépôt GitHub officiel de Coinkite.

⚠️ Règle d'hygiène élémentaire : Ne saisissez JAMAIS, au grand JAMAIS, vos 12 ou 24 mots sur un site web sous prétexte de "vérification" ! On ne teste QUE des adresses publiques (xpub) ou des adresses BTC individuelles. Si un site vous demande votre seed phrase, c'est du phishing à 100 %. Ce sont juste des brouteurs qui essaient de ramasser les miettes oubliées par le bot de l'exploit.

4. Tutoriel step-by-step : Mettre vos fonds à l'abri en toute sécurité

Bordel, je ne le répéterai jamais assez.

METTRE À JOUR LE FIRMWARE NE SUFFIT PAS !

Le patch corrige le générateur pour les futures opérations, mais votre seed actuelle EST DEVENUE mathématiquement prédictible pour n'importe quel bot d'exploit. Votre seul objectif : transférer immédiatement l'intégralité de vos BTC vers une TOUTE NOUVELLE adresse.

Étape 1 : Upgrade du firmware (patch de sécurité)

  • Téléchargez la dernière version du firmware (au minimum la v5.3.0X pour Mk4/Q) IMPÉRATIVEMENT depuis la source officielle : coinkite.com/downloads.
  • Vérifiez systématiquement la signature PGP du fichier ! (Le mode d'emploi est dispo sur le blog officiel de Coinkite).
  • Copiez le fichier .dfu ou .bin sur une carte MicroSD, insérez-la dans la Coldcard puis lancez : Advanced -> Upgrade Firmware.

Étape 2 : Génération d'une NOUVELLE seed (Uniquement via Dice Roll !)

Ne refaites pas l'erreur de faire confiance à un générateur automatique, même une fois patché. Faites les choses dans les règles de l'art :

  • Sélectionnez New Seed Words -> 24 Words.
  • Pressez la touche 4 pour basculer en mode saisie de tirages de dés.
  • Munissez-vous d'un vrai dé à jouer traditionnel et effectuez au moins 100 lancers (50 au strict minimum). Renseignez scrupuleusement chaque résultat obtenu. C'est le seul moyen d'obtenir une entropie stochastique irréprochable.
  • Notez vos 24 nouveaux mots sur papier ou sur support métallique. Si vous les perdez, je ne pourrai absolument rien faire pour vous.

Étape 3 : Exécution du transfert (Transaction de secours)

Il faut maintenant exfiltrer vos sats de l'ancienne seed compromise pour les envoyer vers l'adresse toute fraîchement générée à l'étape 2.

C'est ici que la course contre la montre commence. Les bots des hackers scannent le mempool H24. Si vous balancez votre transaction avec des frais trop bas, elle va stagner dans la file d'attente et un bot risque de se faire un plaisir d'intercepter vos fonds en frontal via une attaque RBF (Replace-By-Fee).

Étape 4 : Dimensionnement des fees et gestion du RBF

Ne radinez surtout pas sur les transaction fees. Allez faire un tour sur mempool.space, regardez les taux de frais High Priority du moment et appliquez un multiplicateur de x1,5 à x2. Vos fonds doivent impérativement passer dans le TOUT PROCHAIN bloc.

5. Analyse technique : Comment le hack a-t-il eu lieu exactement ?

Bordel de merde, en tant qu'expert en sécurité, je suis encore sous le choc de voir à quel point cette vulnérabilité était stupide. C'est l'exemple type du petit bout de code ou du `#define` oublié en C/MicroPython capable de mettre à terre un système qui pèse des dizaines de milliards de dollars.

On va ouvrir le capot et décortiquer l'anatomie cryptographique de ce fail monumental.

Le cœur du bug : Mais où est passée l'entropie ?

Le système d'exploitation de la Coldcard repose sur un fork personnalisé de MicroPython. En temps normal, quand l'appareil génère une nouvelle phrase mnémonique (BIP-39), il doit piocher de l'aléa pur (TRNG - True Random Number Generator) directement depuis deux puces de sécurité indépendantes (Secure Elements), en plus du générateur intégré au microcontrôleur STM32.

Sauf qu'en mars 2021, lors d'un refactoring du code source et d'une mise à jour de la bibliothèque MicroPython de base, les devs ont accidentellement foiré l'initialisation du générateur matériel. Dans le fichier de configuration du build, un flag a été remis à zéro ou mal redéfini :

#define MICROPY_HW_ENABLE_RNG (0) // Attention : ça aurait dû être (1) !

Que s'est-il passé ensuite ?

Quand l'utilisateur cliquait sur « Générer un nouveau wallet », le firmware tentait de demander de l'entropie système.

À cause de ce flag à zéro, le driver matériel du TRNG ne s'est pas initialisé correctement.

Le système ne renvoyait aucune erreur (car des mécanismes de fallback interceptaient l'appel), mais se mettait à sampler un générateur pseudo-aléatoire (PRNG) initialisé avec un seed fixe ou ultra prévisible — comme l'horloge système en millisecondes ou une valeur de registre constante après le reboot !

En clair : au lieu de tirer 256 bits de chaos absolu issus du bruit physique du composant, le wallet générait de l'« aléatoire » à partir d'une séquence dont la variabilité ne dépassait pas 216 à 232 états possibles.

Pour le commun des mortels, 232 combinaisons ça semble gigantesque (environ 4,2 milliards). Mais pour un GPU moderne ou une ferme de calcul dédiée, c'est l'affaire de 15 secondes chrono !

Comment les mecs ont-ils reconstruit les clés ?

Les attaquants n'ont même pas eu besoin de hacker physiquement les wallets.

Ils ont juste analysé les plages d'horodatage (timestamps) et les versions de firmware, reconstruit l'algorithme de prédiction du PRNG, et généré toutes les variantes possibles de 12/24 mots que la version vulnérable de la Coldcard POUVAIT MATHÉMATIQUEMENT sortir.

Après, c'était du gâteau :

  • Les mecs ont généré une table d'adresses publiques pour toutes les seed phrases prédites (chemins de dérivation m/84'/0'/0'/0/x pour Native SegWit et m/86'/0'/0'/0/x pour Taproot).
  • Ils ont balancé un bot pour scanner l'historique complet de la blockchain Bitcoin (le set UTXO).
  • Dès qu'une adresse correspondait à un vrai solde, la génération automatique des clés privées s'est lancée pour vider les wallets dans la foulée.

C'est pour ça que l'attaque se déroule par vagues. La première vague a nettoyé les plages de génération les plus évidentes. Les deuxième et troisième vagues ont élargi le bruteforce à des décalages d'horloge moins probables et à des chemins de dérivation exotiques (comme des structures multisig ou des comptes non standard).

Les amis, la vraie leçon de cette histoire : ne comptez JAMAIS à 100 % sur une seule source d'entropie, même si elle vient d'un hardware wallet survendu par une marque haut de gamme.

Gardez en tête la règle des deux « NE PAS » :

  • NE PAS utiliser la génération automatique de clés sans ajouter votre propre entropie utilisateur (le lancer de dés / Dice Roll est votre meilleur pote).
  • NE PAS repousser les mises à jour de firmware, mais TOUJOURS vérifier les signatures PGP des releases avant de flash.

Prenez soin de vos satoshis, vérifiez vos adresses et évacuez vos fonds immédiatement si vous êtes dans la zone de danger.


FAQ

Oui, mais avec un énorme bémol. Si vous avez utilisé une passphrase solide, longue et vraiment aléatoire, votre clé maître finale est mathématiquement décalée via PBKDF2 (HMAC-SHA512). Le hacker devra alors brute-forcer non seulement le seed compromis, but aussi votre passphrase secrète. Mais soyons réalistes : si votre passphrase c'est juste le nom de votre chien ou votre année de naissance, une fois les 24 mots de base dans la nature, l'attaquant n'aura besoin que de deux minutes pour la casser. En revanche, si vous avez collé 20+ caractères aléatoires, vos fonds sont relativement en sécurité pour le moment — mais je vous recommande QUAND MÊME vivement de migrer vers un seed totalement propre.

Oui, le hardware en lui-même (les puces Secure Element ATECC608A / DS28E38) n'a pas été pwned. La protection physique contre la lecture de la mémoire, les capteurs du boîtier et les mécanismes anti-tamper fonctionnent parfaitement. Le problème était exclusivement logiciel (au niveau du firmware). Une fois mis à jour avec la version patchée et après avoir régénéré un seed via des lancer de dés (Dice Rolls), votre Coldcard redevient un bunker totalement inexpugnable.

Pour l'instant, la position officielle de Coinkite se limite à reconnaître le bug dans le code et à sortir des patchs d'urgence. Vu l'ampleur de la casse (près de 85 millions de dollars), il est très peu probable que la boîte canadienne dispose de telles réserves pour éponger les pertes des utilisateurs, à moins de réussir à faire jouer des fonds d'assurance. Des avertissements sont affichés sur leur compte X officiel et leur blog, mais sur le plan juridique — conformément aux disclaimers des licences open-source (GPL/BSD) —, la responsabilité de la conservation des clés incombe entièrement à l'utilisateur. C'est la dure loi du self-custody : Not your keys, not your coins ; mais aussi — bad code, lost coins.
Oleg Filatov

As the Chief Technology Officer at EXMON Exchange, I focus on building secure, scalable crypto infrastructure and developing systems that protect user assets and privacy.

With over 15 years in cybersecurity, blockchain, and DevOps, I specialize in smart contract analysis, threat modeling, and secure system architecture.

At EXMON Academy, I share practical insights from real-world...

...

Partager votre avis

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués *