Faille RNG COLDCARD : analyse du vol de 88 millions de dollars en Bitcoin et marche à suivre
Séraphine Clairlune
Le 30 juillet 2026, une onde de choc a traversé l’écosystème des crypto-monnaies. Un vol massif de Bitcoin, estimé à 88,6 millions de dollars (1 367 BTC), a été perpétré depuis plus de 4 500 adresses de portefeuilles matériels COLDCARD. Cet incident, minutieusement documenté par Galaxy Research, Chainalysis et les équipes de Block, expose une fragilité fondamentale au cœur de la sécurité des hardware wallets : le générateur de nombres aléatoires (RNG). L’origine de ce désastre ? Une faille RNG COLDCARD critique, une vulnérabilité dans le firmware. Êtes-vous concerné ? Comment protéger vos fonds ? Cet article vous détaille la nature de la faille, son exploitation, et surtout, les étapes précises à suivre pour sécuriser vos actifs.
Comprendre la faille RNG de COLDCARD et son impact
Qu’est-ce que la faille Yasmarang ?
La sécurité d’un wallet Bitcoin repose sur l’imprévisibilité de sa seed (la phrase de 12 ou 24 mots). Cette seed est générée à partir d’un générateur de nombres aléatoires (RNG). Le wallet COLDCARD intègre un RNG matériel dédié (le STM32 hardware RNG). Cependant, une erreur d’intégration dans le firmware a provoqué l’utilisation systématique d’un générateur logiciel de secours : le Yasmarang de MicroPython.
“COLDCARD firmware contains an RNG integration error that causes ngu.random to use MicroPython’s deterministic Yasmarang fallback instead of the STM32 hardware RNG”, explique le rapport de Block.
Le Yasmarang est un générateur pseudo-aléatoire simple, souvent utilisé dans les systèmes embarqués pour des tâches non critiques comme l’affichage graphique. Il n’est absolument pas adapté à la cryptographie. En utilisant l’identifiant unique du microcontrôleur (UID) et des horodatages système comme sources d’entropie, le nombre de seeds possibles devenait mathématiquement limité et, surtout, reproductible par un attaquant.
Pour un attaquant, le scénario est le suivant : en se procurant un COLDCARD similaire (ou en connaissant les mécanismes de génération), il peut reconstituer l’état interne du RNG au moment de la création de la seed. Il lui suffit alors de générer localement toutes les seeds potentielles, de dériver les adresses Bitcoin correspondantes, et de les comparer avec les adresses visibles sur la blockchain. Si une adresse correspond, la seed est compromise.
“Every transaction used an identical hardcoded fee rate of 30 satoshis per virtual byte and left no change output. That looks like an automated tool spending keys it already held, not owners moving funds.” - Galaxy Research
Comment les attaquants ont-ils exploité la vulnérabilité ?
Connaissant la faiblesse du RNG, les attaquants ont pu générer localement l’ensemble des seeds potentielles produites par les wallets concernés. En comparant les adresses Bitcoin dérivées de ces seeds avec celles visibles sur la blockchain, ils ont pu identifier les portefeuilles vulnérables et récupérer les clés privées associées.
Chainalysis a observé que l’attaquant avait priorisé les wallets à fort solde, dérobant 30 millions de dollars dans les dix premières minutes de l’attaque. Un montant de 1,8 million de dollars a été volé à une seule victime. Cette connaissance préalable des cibles et l’automatisation parfaite des transactions (frais identiques de 30 sat/vB, absence de monnaie rendue) suggèrent une préparation minutieuse et une exécution quasi industrielle de l’attaque.
L’attaquant a probablement passé du temps à analyser la blockchain pour cartographier les adresses dérivées des seeds vulnérables. Cette phase de reconnaissance est essentielle pour maximiser le butin en un minimum de temps. En ciblant d’abord les plus gros portefeuilles, l’attaquant s’assurait de récupérer le maximum de valeur avant que la nouvelle de la faille ne se répande et que les utilisateurs ne commencent à migrer leurs fonds.
Le déroulement du vol : 1 367 BTC dérobés en plusieurs vagues
L’attaque ne s’est pas produite en une seule fois. La première vague, le 30 juillet, a drainé 1 083 BTC (environ 70,2 millions de dollars) depuis 1 196 adresses en seulement 41 minutes. Cette attaque a eu lieu environ 30 heures avant que Coinkite ne divulgue publiquement la faille.
Une deuxième et une troisième vagues ont été identifiées le 1er août, portant le total à 1 367 BTC volés à 4 585 adresses. Au moment de la rédaction du rapport de Galaxy Research, les fonds dérobés n’avaient pas été déplacés des adresses contrôlées par les attaquants. Ce qui suggère soit une difficulté à blanchir une telle masse de Bitcoin, soit une volonté de laisser la pression monter avant de tenter de les déplacer.
Quels sont les wallets et firmwares concernés par cette vulnérabilité ?
Coinkite a publié un avis de sécurité listant précisément les versions impactées. Il est impératif de vérifier votre version de firmware immédiatement.
| Appareil | Firmwares vulnérables | Firmware corrigé |
|---|---|---|
| COLDCARD Mk2 & Mk3 | 4.0.1 à 4.1.9 | 4.2.0 ou ultérieur |
| COLDCARD Mk4 & Mk5 | Avant 5.6.0 (Standard) / 6.6.0X (Edge) | 5.6.0+ (Standard) / 6.6.0X+ (Edge) |
| COLDCARD Q | Avant 1.5.0Q (Standard) / 6.6.0QX (Edge) | 1.5.0Q+ (Standard) / 6.6.0QX+ (Edge) |
Produits non concernés : Coinkite précise que les produits TAPSIGNER, OPENDIME et SATSCARD ne sont pas affectés car ils utilisent des bases de code différentes. Coinkite a également détruit tous les appareils en stock qui étaient équipés du firmware défectueux. Les clients ayant reçu un appareil avec un firmware vulnérable ont été contactés par email avec les instructions de migration.
“Coinkite says seeds supplemented with at least 50 fair, independent, and private dice rolls are not considered at risk from this flaw alone.” - Avis de sécurité Coinkite
Détail par famille de produits
- COLDCARD Mk2 et Mk3 : Ces modèles plus anciens sont concernés par les versions de firmware 4.0.1 à 4.1.9. La version corrigée est la 4.2.0 ou ultérieure. Si vous utilisez un de ces modèles, la vérification est cruciale.
- COLDCARD Mk4 et Mk5 : Les modèles les plus récents sont concernés par les versions antérieures à la 5.6.0 (canal Standard) ou à la 6.6.0X (canal Edge).
- COLDCARD Q : Le modèle haut de gamme avec écran tactile est concerné par les versions antérieures à la 1.5.0Q (Standard) ou 6.6.0QX (Edge).
Êtes-vous concerné ? Comment vérifier votre firmware COLDCARD
Si vous possédez un COLDCARD, voici comment vérifier votre version de firmware :
- Allumez votre COLDCARD.
- Naviguez dans le menu
Advanced / Tools>Unit Tests>Firmware Version. - Notez la version exacte affichée à l’écran.
- Comparez-la avec le tableau ci-dessus.
Si votre version figure dans la liste des vulnérables, vous devez considérer votre seed comme compromise et agir sans délai. Même si vous n’avez pas perdu de fonds, votre wallet est exposé à une attaque future. L’attaquant a prouvé sa capacité à générer les clés privées des seeds affectées.
Procédure de migration sécurisée : générer une nouvelle seed
⚠️ Attention critique : La mise à jour du firmware ne répare PAS votre seed actuelle.
La seed a été générée avec un RNG défaillant. Un attaquant peut potentiellement la reconstituer. Mettre à jour le firmware empêche la génération de nouvelles seeds faibles, mais ne change en rien la sécurité de votre ancienne seed. Vous devez absolument migrer vers une nouvelle seed générée avec le firmware corrigé. Considérez votre ancienne seed comme publiquement connue.
Les étapes à suivre pour une migration sécurisée
- Mettez à jour le firmware de votre COLDCARD vers la version corrigée (4.2.0+, 5.6.0+, 1.5.0Q+, ou 6.6.0X+). Suivez les instructions officielles de Coinkite pour la mise à jour via une carte SD.
- Générez une nouvelle seed sur l’appareil via l’option “New Seed Words”. Assurez-vous d’être dans un environnement physiquement sécurisé, sans caméra ni regard indiscret. Le wallet vous guidera dans la génération de l’aléa via les boutons et les mouvements de l’appareil.
- Sauvegardez la nouvelle seed sur votre support physique (carte en acier inoxydable, cryptosteel, etc.). Ne la stockez jamais numériquement (photo, cloud, email). Vérifiez deux fois chaque mot.
- Vérifiez la nouvelle adresse sur l’écran du wallet à l’aide de l’option “Address Explorer”. Cette étape est cruciale pour vous assurer que l’appareil n’a pas été compromis physiquement (attaque par supply chain). L’adresse affichée à l’écran doit correspondre à celle dérivée de votre seed.
- Effectuez une transaction test d’un petit montant (quelques milliers de sats) vers la nouvelle adresse depuis votre ancien wallet.
- Une fois la transaction test confirmée, transférez la totalité de vos fonds depuis l’ancienne adresse compromise. Utilisez des frais de transaction adaptés pour ne pas bloquer la transaction.
- Conservez l’ancienne sauvegarde jusqu’à ce que la migration soit entièrement terminée et confirmée sur plusieurs blocs. Vous pourrez ensuite la détruire en toute sécurité (déchiqueteuse, feu).
Cas particuliers : phrase de passe (BIP-39) et dés
Que faire si j’utilise une phrase de passe (passphrase) ? Une phrase de passe BIP-39 forte et unique ajoute une couche de sécurité. Elle modifie la seed finale dérivée. Cependant, elle ne corrige pas l’entropie initiale de la seed. Un attaquant disposant de la liste des seeds vulnérables peut tenter des attaques par force brute sur la phrase de passe. La migration vers une nouvelle seed reste la seule solution véritablement sécurisée.
Que faire si j’ai ajouté des lancers de dés ? Coinkite indique que les seeds complétées par au moins 50 lancers de dés équitables, indépendants et privés ne sont pas considérées comme à risque par cette seule faille. En effet, les dés ajoutent une entropie externe que l’attaquant ne peut pas reconstituer. Si vous avez utilisé cette méthode, votre seed est très probablement sûre. Cependant, par excès de prudence et pour simplifier votre gestion, une migration peut être envisagée.
Leçons de cybersécurité pour les détenteurs de crypto-monnaies
Cette faille RNG COLDCARD est un cas d’école pour l’industrie des crypto-monnaies et de la cybersécurité en général.
L’importance de l’audit continu : Cet incident a été découvert par les équipes de Block en collaboration avec d’autres chercheurs. Il souligne la nécessité d’audits de sécurité réguliers et approfondis des firmwares, même pour les produits les plus réputés. La transparence des fabricants sur leurs processus de génération d’entropie est désormais une exigence de base.
La défense en profondeur : Ne placez jamais tous vos actifs dans un seul panier. La diversification de vos solutions de stockage (multi-sig, wallets de différents fabricants, etc.) est une stratégie de gestion des risques prudente.
La réactivité des fabricants : Coinkite a réagi en publiant un correctif rapidement et en détruisant les stocks défectueux. Cependant, le délai de 30 heures entre la divulgation et la première vague d’attaques a été fatal. Cet incident pose la question des procédures de divulgation responsable dans un écosystème où les actifs sont numériques et instantanément transférables.
L’importance de la vérification : Cet incident rappelle l’importance de vérifier son matériel et ses sauvegardes. Une simple vérification de la version du firmware peut vous éviter des pertes catastrophiques.
Conclusion : agir maintenant pour sécuriser vos actifs numériques
La faille RNG COLDCARD est un événement majeur qui rappelle une vérité fondamentale : la sécurité d’un hardware wallet repose entièrement sur la qualité de son générateur de nombres aléatoires. Une simple erreur d’intégration logicielle peut compromettre des milliers de portefeuilles et des centaines de millions de dollars.
Si vous possédez un COLDCARD Mk2, Mk3, Mk4, Mk5 ou Q, ne tardez pas. Vérifiez immédiatement votre version de firmware. Si vous êtes concerné, suivez scrupuleusement la procédure de migration vers une nouvelle seed. La sécurité de vos Bitcoin est entre vos mains, et une action rapide est la seule garantie contre un risque désormais parfaitement identifié.
N’attendez pas d’être victime pour agir. Mettez à jour, migrez, et sécurisez votre avenir numérique.