Aller au contenu
Beveiligingsnieuws

Coldcard : faille liée à un vol de 70 millions de dollars

Coldcard hardware wallet

Le 30 juillet, un attaquant a vidé des adresses Bitcoin, au total 1 196 adresses en 41 minutes. Les analyses disponibles évoquent un montant d’environ 1 082,65 BTC, soit 70,2 millions de dollars au moment des faits. Les investigations menées par Galaxy Research rattachent cette opération à une faille Coldcard liée à une faiblesse de génération de graines, dans certains firmwares de ce portefeuille matériel Bitcoin-only.

Dans cet article, nous résumons ce que les chercheurs ont mis en évidence : le mécanisme technique, les modèles concernés, pourquoi un correctif ne suffit pas toujours, et les mesures que les détenteurs de graines exposées doivent prendre.

Ce que la recherche a observé sur le vol

Galaxy Research a cartographié le balayage (sweep) effectué par l’attaquant : l’opération a consolidé des fonds depuis des adresses associées à des clés probablement dérivées d’un même ensemble de paramètres. Selon les données citées, la séquence a été réalisée avec une efficacité remarquable, ce qui suggère une préparation en amont.

À noter : le motif de transactions observé peut ressembler à une action légitime d’un propriétaire qui décide de transférer ses fonds. Les chercheurs précisent donc que le motif identifie surtout l’opérateur (le profil d’exécution), sans prouver automatiquement la responsabilité individuelle de la personne derrière le balayage.

La faille Coldcard : génération des graines et PRNG

La faille Coldcard décrite dans les analyses provient d’une erreur d’intégration de firmware datant de mars 2021. L’idée clé est la suivante : au lieu d’utiliser un générateur de nombres aléatoires matériel (RNG) du microcontrôleur, le processus de génération des graines a été routé vers un générateur déterministe piloté par un pseudo-aléatoire logiciel (PRNG).

Ce choix peut sembler technique, mais ses conséquences sont majeures : si l’attaquant peut reconstituer l’état interne nécessaire, il peut produire des candidats de graines hors appareil, puis vérifier ces candidats en dérivant les adresses correspondantes. Le tout se fait à partir des informations publiques de la blockchain.

Pourquoi un attaquant n’a pas besoin d’accéder à l’appareil

Selon la description fournie, un adversaire capable de contraindre ou de déduire suffisamment des éléments comme l’identifiant interne de l’appareil (UID), l’état du minuteur et l’historique des appels du générateur aléatoire, peut reproduire des flux de sortie candidats sans interagir avec le portefeuille. Ensuite, il compare les adresses dérivées avec des éléments observables on-chain pour confirmer la correspondance.

Correctif publié : ce que cela change… et ce que cela ne change pas

Coinkite, l’entreprise derrière Coldcard, a publié un firmware d’urgence pour chaque modèle concerné et pour les canaux de mise à jour correspondants, avec une publication le 31 juillet. Toutefois, les analyses soulignent une limite importante : installer la mise à jour ne “répare” pas une graine déjà générée avec le firmware vulnérable.

En clair, si une graine a été exposée en raison de la faiblesse de génération au moment de sa création, la mettre à jour ensuite ne supprime pas le problème. Pour les utilisateurs dont la graine serait concernée, la recommandation rapportée consiste à générer une nouvelle graine sur le firmware corrigé, puis à déplacer les fonds vers le nouveau portefeuille.

Raisons techniques : configuration de production et limite de l’entropie

La cause racine a été reliée à la configuration de production de Coldcard. Elle définit une macro liée à l’activation du RNG matériel à une valeur qui désactive l’utilisation attendue. Le mécanisme de détection, décrit comme une vérification de présence de la macro plutôt que de son activation réelle, a donc conduit à un “fallback” vers une méthode de pseudo-aléa moins robuste.

Dans ce scénario de fallback, l’initialisation s’appuie sur l’UID unique de la puce et des registres liés au minuteur, puis ne collecte pas d’entropie fraîche après l’initialisation. Résultat : l’espace réel des possibilités peut être plus petit que celui qu’on souhaiterait pour une graine BIP-39.

Entropie estimée et comparaison avec BIP-39

Coinkite estime que l’entropie effective serait d’environ 40 bits pour le Mk3, et d’environ 72 bits pour le Mk4, Mk5 et le Q. Ces valeurs doivent être mises en perspective : une graine BIP-39 de 12 mots est souvent associée à un cadre de sécurité d’environ 128 bits dans la conception.

Les chercheurs rapportent également des plafonds conditionnels pour la sécurité, en précisant que la valeur “72 bits” n’équivaut pas simplement à une sécurité cryptographique de 73 bits, même si c’est une comparaison intuitive. En outre, aucun chiffre de “benchmark” de force brute n’a été publié dans les éléments cités.

Quels modèles et quelles versions sont touchés ?

Un point crucial : l’exposition dépend du firmware qui tournait lors de la création de la graine, et non de la version actuellement installée. Autrement dit, mettre à jour après coup ne suffit pas si la graine a été produite avec un chemin vulnérable.

Les versions rapportées comme potentiellement concernées sont :

  • Mk2 et Mk3 : toutes les versions 4.0.0 à 4.1.9 sont situées sur le chemin vulnérable, et Coinkite cite en parallèle des corrections à partir de 4.2.0 pour le Mk3 (avec des plages de versions citées séparément pour Mk3). Pour Mk2, la liste n’est pas présentée de la même manière par l’éditeur, mais l’analyse place Mk2 et Mk3 dans l’intervalle 4.0.0–4.1.9.
  • Mk4 et Mk5 : tout avant 5.6.0.
  • Q : tout avant 1.5.0Q.
  • Build “Edge” : pour Mk4 et Mk5, avant 6.6.0X, et pour Q, avant 6.6.0QX.

Renseigner son risque : dés de qualité, passphrase et multisig

Coinkite indique qu’une graine construite avec au moins 50 lancers de dés, “fair” et indépendants, n’est pas exposée par ce bug seul. Si le nombre exact de lancers ou leur confidentialité ne peut pas être garanti, la société recommande de migrer.

Par ailleurs, l’usage d’une passphrase BIP-39 forte et unique créerait un espace de wallet distinct : les mots de graine seuls ne permettraient pas d’accéder à ce portefeuille. Malgré cela, Coinkite recommande toujours de remplacer la graine si elle est suspectée d’avoir été générée dans un contexte à risque.

Concernant les configurations multisig, la protection n’est efficace que si le quorum n’est pas constitué entièrement d’appareils affectés par la même faiblesse. Des produits basés sur d’autres codebases (mentionnés : TAPSIGNER, OPENDIME et SATSCARD) ne seraient pas impactés par cette faille, d’après les éléments rapportés.

Le périmètre pourrait s’étendre : nouvelles vagues suspectées

Depuis la première estimation, Galaxy Research a identifié deux vagues supplémentaires de balayages potentiellement liées à des opérations Coldcard, ce qui ferait évoluer le total observé à 1 367,05 BTC, soit environ 88,6 millions de dollars sur 4 585 adresses.

Les chercheurs précisent que les vagues 1 et 2 pourraient partager un opérateur, car les motifs de transactions présentent des similitudes. En revanche, il ne faut pas conclure automatiquement que la vague 3 implique le même acteur. De plus, l’analyse reste basée sur l’examen on-chain : elle n’a pas été accompagnée d’une confirmation computationnelle que chaque adresse identifiée proviendrait bien d’une génération de graine faible.

Enfin, l’activité resterait en cours. Galaxy mentionne avoir transmis environ 600 adresses suspectées à des organismes publics, des structures de conformité et des équipes de cybersécurité.

Contexte plus large : d’autres faiblesses de PRNG

Cette divulgation s’inscrit dans une série plus vaste de risques liés aux générateurs pseudo-aléatoires. Les éléments cités renvoient notamment à un travail de Coinspect (“Ill Bloom”) publié début juillet, qui aurait mis en évidence une faiblesse PRNG dans des logiciels plus anciens, associée à des pertes dépassant 5 millions de dollars sur plusieurs chaînes.

Le point commun entre ces scénarios est que des problèmes dans la génération de l’aléa peuvent réduire l’espace de recherche des graines et rendre la récupération de clés plus praticable qu’elle ne devrait l’être.

Que faire si vous utilisez Coldcard ?

Les recommandations issues des analyses convergent vers une idée simple : la mise à jour est nécessaire, mais elle ne suffit pas toujours pour corriger une graine déjà créée avec un firmware à risque.

Concrètement, si votre appareil a pu générer une graine pendant une période où la configuration décrite était en place (selon les modèles et versions listées), le bon réflexe est de :

  • vérifier la version de firmware au moment exact de la création de la graine,
  • mettre à jour vers le firmware corrigé,
  • si la graine est potentiellement exposée, générer une nouvelle graine sur le firmware corrigé,
  • déplacer ensuite vos fonds vers le nouveau portefeuille.

En complément, évaluer si une passphrase BIP-39 a été utilisée, et si votre configuration multisig inclut des appareils potentiellement affectés, peut réduire l’impact — mais selon les recommandations, la migration reste souvent la mesure la plus prudente.

Conclusion

La faille Coldcard identifiée par les analyses relie une erreur de firmware à un changement de stratégie de génération de graines, basculant vers un PRNG déterministe moins protecteur. Cette faiblesse a pu permettre à un attaquant de produire et vérifier des candidats hors appareil, conduisant à des balayages rapides et à des pertes évaluées à dizaines de millions de dollars.

Avec la correction de firmware publiée, le message principal demeure : le risque dépend du moment de création de la graine. Si une graine a été générée dans un contexte vulnérable, la protection durable passe par une nouvelle génération puis un repositionnement des fonds sur la base corrigée.

Source: https://thehackernews.com/2026/08/coldcard-hardware-wallet-flaw-linked-to.html