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'attaque | Date de début | Adresses touchées (croissance) | BTC siphonnés (par vague) | Total BTC siphonnés | Équivalent USD (est.) |
|---|---|---|---|---|---|
| 1ère vague | 30 juillet 2026 | ~1 196 | ~1 082,65 BTC | 1 082,65 BTC | ~$67,1M |
| 2e vague | 31 juillet 2026 | +1 477 (total : 2 673) | +76,16 BTC | 1 158,81 BTC | ~$71,8M |
| 3e vague | 02 août (en cours) | +1 912 (total : 4 585) | +207,73 BTC | 1 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
4pour 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/xpour Native SegWit etm/86'/0'/0'/0/xpour 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.