Le 30 juillet, un pirate a exploité des graines faibles générées par certains portefeuilles matériels Coldcard pour voler des bitcoins d'une valeur d'environ plusieurs dizaines de millions à partir de centaines d'adresses.
Tout savoir sur la faille « Coldcard » : qui a perdu des bitcoins et qui est menacé ?

Points clés
- Les vols liés à Coldcard ont vidé des bitcoins de centaines de portefeuilles le 30 juillet.
- Selon Coinkite, les graines Mk3 présentaient une entropie d’environ 40 bits au lieu de 128.
- Les utilisateurs de Coldcard doivent installer le micrologiciel corrigé et créer de nouvelles clés de récupération avant de transférer des fonds.
Selon une analyse approfondie de Galaxy Research, le vol principal s’est déroulé en une vague étroitement coordonnée d’une durée d’environ 25 minutes, tandis qu’une analyse plus large a par la suite établi un lien entre environ 1 196 adresses et pas moins de 1 083 bitcoins, d’une valeur de près de 70 millions de dollars, et une activité s’étendant sur environ 41 minutes. Les chiffres définitifs pourraient évoluer à mesure que les enquêteurs poursuivent le traçage des transactions sur la blockchain publique de Bitcoin.
Un bug vieux de 5 ans touche les portefeuilles Bitcoin du monde entier
Les portefeuilles touchés appartenaient en grande partie à des détenteurs de longue date qui avaient généré leurs graines de récupération à l’aide d’appareils Coldcard fonctionnant avec un micrologiciel vulnérable commercialisé à partir de mars 2021. Coldcard est un portefeuille matériel «air-gapped» fabriqué par le fabricant canadien Coinkite et conçu pour isoler les clés Bitcoin (BTC) des appareils connectés à Internet.
Bon nombre des adresses vidées étaient restées inactives pendant des années. Le pirate a agi rapidement, a payé des frais de transaction fixes élevés et n’a laissé aucune sortie de change, ce qui signifie que chaque adresse a été entièrement vidée. Ce schéma suggère une opération automatisée utilisant une liste préparée de clés privées plutôt que des clients transférant leurs fonds de leur propre initiative.
Ce vol n’a pas été causé par une tentative d’hameçonnage, un logiciel malveillant sur l’ordinateur d’un utilisateur, le vol physique d’un appareil ou une intrusion à distance classique. Au contraire, une erreur de micrologiciel a affaibli le caractère aléatoire utilisé lors de la création des graines de portefeuille par certains appareils Coldcard. Ces graines semblaient normales, mais provenaient d’un éventail de combinaisons possibles bien plus restreint que ce qui avait été promis aux utilisateurs.
Le générateur de nombres aléatoires de Coldcard a discrètement échoué
Une graine de portefeuille Bitcoin est un secret, généralement représenté par 12 ou 24 mots, à partir duquel le portefeuille génère ses adresses et ses clés privées. Une graine de 12 mots correctement générée contient 128 bits d’entropie, une mesure technique décrivant un nombre énorme de combinaisons possibles qui rend la devinette de la graine pratiquement impossible.
Les appareils Coldcard étaient censés obtenir cette aléatoire à partir d’un générateur de nombres aléatoires matériel intégré au microcontrôleur de l’appareil. Ce composant s’appuie sur le bruit électrique physique qu’un observateur extérieur ne devrait pas être en mesure de prédire.
Cependant, lors d’une migration de bibliothèques logicielles en 2021, Coinkite a révélé que deux fonctions de génération de nombres aléatoires dotées d’interfaces identiques avaient été confondues. L’une accédait au générateur matériel propre à l’appareil. L’autre était une solution de secours logicielle peu sûre, destinée aux cartes ne disposant pas du matériel adéquat.
Un paramètre de configuration désactivait le chemin matériel MicroPython par défaut, car Coinkite fournissait son propre wrapper matériel. Le logiciel vérifiait uniquement si ce paramètre existait, et non s’il était activé. Comme le paramètre était présent mais avait la valeur zéro, la compilation s’est déroulée avec succès, tandis que la génération de graines basculait silencieusement vers le générateur logiciel, moins performant.
Les données d’usine et la synchronisation ont remplacé le caractère véritablement aléatoire
Ce recours de secours s’appuyait fortement sur des informations prévisibles relatives à l’appareil, notamment un identifiant de puce similaire à un numéro de série et des valeurs d’horloge interne associées au timing de démarrage. Un attaquant capable de restreindre ces entrées se retrouverait face à un espace de recherche bien plus restreint que la plage de 128 bits attendue pour une graine générée de manière sécurisée.
Coinkite a estimé l’espace de recherche effectif pour les graines Mk3 vulnérables à environ 40 bits selon les hypothèses actuelles. Cela représente tout de même un grand nombre de possibilités, mais cet espace peut être exploré à l’aide d’équipements informatiques spécialisés, en particulier lorsqu’un attaquant peut comparer les graines candidates aux adresses Bitcoin visibles sur la blockchain.

Les modèles Coldcard ultérieurs, notamment les Mk4, Q et Mk5, ont ajouté un élément aléatoire provenant d’un élément sécurisé. Cependant, seule une partie limitée de cet élément aléatoire atteignait le générateur concerné, laissant une entropie effective estimée à 72 bits pour les graines créées avant l’installation du micrologiciel corrigé. Ce niveau était supérieur à celui du Mk3, mais restait inférieur à la norme prévue de 128 bits. La différence est comparable au fait de remplacer une combinaison de serrure véritablement aléatoire par une combinaison dérivée du numéro de série de la serrure et de l’heure de sa première mise en marche. La combinaison obtenue peut sembler aléatoire, mais une personne connaissant la formule et capable d’estimer les informations de départ peut la reproduire. De nombreux utilisateurs migrent, non seulement depuis les appareils Mk3, mais également depuis les modèles Mk4, Q et Mk5.
Coinkite recommande à ses utilisateurs de créer des graines entièrement nouvelles
Coinkite a publié des avis de sécurité et corrigé son micrologiciel après avoir pris conscience de la menace active. La société a indiqué que les utilisateurs ayant généré des graines sur le micrologiciel concerné devaient créer une graine entièrement nouvelle à l’aide d’une version corrigée, puis transférer leurs bitcoins vers des adresses contrôlées par cette graine.
L’installation de la mise à jour ne suffit pas à elle seule. Une graine créée sous le système défectueux reste vulnérable de manière permanente, car la mise à jour du micrologiciel ne peut pas ajouter d’aléatoire aux mots qui existent déjà.
Coinkite a conseillé aux utilisateurs de mettre à jour leur appareil, de créer une nouvelle graine, de vérifier la sauvegarde et l’empreinte du portefeuille, de confirmer l’adresse de réception, d’envoyer une petite transaction test, puis de transférer le solde restant. Les utilisateurs doivent conserver l’ancienne sauvegarde jusqu’à ce que le transfert soit confirmé, mais ne doivent plus considérer l’ancienne graine comme sécurisée.
La société a identifié les versions corrigées, notamment la version 4.2.0 ou ultérieure du Mk3, les versions 5.6.0 ou ultérieures du Mk4 et du Mk5, ainsi que la version 1.5.0Q ou ultérieure du Q, ainsi que les versions correspondantes d’Edge. Les produits Tapsigner, Opendime et Satscard utilisent un code différent et n’auraient pas été affectés.
Une sécurité renforcée a protégé certains détenteurs de Coldcard
Les utilisateurs ayant ajouté suffisamment de lancers de dés indépendants lors de la génération d’une graine ont été largement protégés, car leur propre aléatoire a pris le pas sur l’entrée logicielle défectueuse. Coinkite a indiqué qu’au moins 50 lancers privés d’un dé équitable offraient une protection adéquate contre ce problème, bien que des lancers supplémentaires puissent offrir une marge de sécurité plus importante.
Une phrase de passe BIP-39 forte permet également de créer un portefeuille distinct qui ne peut pas être reconstitué à partir des mots de la graine seuls. Les portefeuilles à signatures multiples, qui nécessitent des clés provenant de plusieurs appareils ou emplacements avant que des bitcoins puissent être transférés, étaient largement, voire entièrement, protégés lorsque la graine Coldcard vulnérable ne représentait qu’une partie du dispositif de signature.
Ces mesures de sécurité étaient toutefois facultatives. De nombreuses victimes semblent avoir suivi les conseils de sécurité standard disponibles à l’époque : acheter un portefeuille matériel réputé, générer la graine hors ligne, protéger la sauvegarde et ne jamais la saisir sur un appareil connecté à Internet.
Coinkite assume la responsabilité alors que le débat s'oriente vers l'IA
Le PDG de Coinkite, Rodolfo Novak, plus connu sous le nom de NVK, s’est excusé publiquement le 31 juillet et a déclaré que l’entreprise assumait l’entière responsabilité de la défaillance du micrologiciel. « Je suis désolé et je suis anéanti. Notre équipe a le cœur brisé par les nouvelles d’hier », a écrit M. Novak. Il a reconnu que le correctif sécurisait les clés de récupération nouvellement créées, mais qu’il ne pouvait pas réparer celles générées à l’aide d’un logiciel vulnérable.

M. Novak a expliqué que Coinkite publierait un rapport technique complet après avoir vérifié les détails et aiderait les utilisateurs concernés à établir des procès-verbaux de police, à déposer des demandes d’indemnisation auprès de leur assurance ou à mener des enquêtes indépendantes. Il a également averti les développeurs que les outils d’intelligence artificielle (IA) sont désormais capables d’analyser d’anciens codes publics à la recherche de failles cachées plus rapidement que ne le permettent les processus de révision traditionnels.
Coinkite a souligné qu’il devait partir du principe qu’un attaquant avait utilisé l’IA pour inspecter son firmware open source, bien qu’aucune preuve n’ait établi comment la faille avait été découverte. La société a également reconnu qu’une analyse récente effectuée à l’aide d’un modèle d’IA de premier plan n’avait pas permis d’identifier le problème. Plusieurs fabricants concurrents de portefeuilles matériels se sont exprimés sur les réseaux sociaux pour préciser que leurs produits n’étaient pas concernés.
« Ledger n’est pas concerné par l’avis récemment publié concernant la Coldcard Mk3 », a déclaré l’entreprise aux utilisateurs de X après l’incident lié à la Coldcard. « Les appareils Ledger utilisent un générateur de nombres aléatoires véritables (TRNG) certifié, intégré directement à notre puce Secure Element, qui génère une entropie complète de 256 bits pour chaque phrase secrète de récupération de 24 mots. »
« Utilisateurs de Trezor : vos fonds sont en sécurité », a expliqué vendredi le fabricant de portefeuilles matériels Trezor. « Le récent problème lié à Coldcard se limite à leur propre micrologiciel personnalisé et à la manière dont certains de leurs appareils généraient des nombres aléatoires. Trezor n’utilise pas ce code. » Le compte Trezor X a ajouté :
« Nous avons toujours combiné plusieurs sources indépendantes de nombres aléatoires (matériel de l’appareil + hôte + éléments sécurisés sur les modèles plus récents). Nous sommes sincèrement désolés pour toutes les personnes qui ont perdu des bitcoins. »
Ce que les utilisateurs de Coldcard doivent surveiller désormais
L’identité de l’attaquant reste inconnue, et les bitcoins volés pourraient être transférés depuis leurs adresses de consolidation à tout moment. Les enquêteurs s’efforcent toujours de déterminer combien de graines vulnérables ont été effectivement générées, quelle quantité de bitcoins reste exposée, et si d’autres portefeuilles de grande valeur ont déjà été identifiés par l’attaquant. Cependant, Coinkite ne dispose peut-être pas de beaucoup d’informations sur les anciens propriétaires. « Une situation à double tranchant : Coinkite supprime tous ses dossiers clients au bout de 120 jours afin de se prémunir contre les fuites de données », a rapporté sur X le cofondateur de Casa, Jameson Lopp. « Ce qui signifie qu’ils ne peuvent pas contacter les clients ayant acheté des cartes de stockage à froid vulnérables au cours des cinq dernières années pour les avertir de cette faille de sécurité. »

Cet incident permettra également de voir si Coinkite parviendra à rétablir la confiance dans Coldcard et si les fabricants de portefeuilles matériels adopteront des contrôles indépendants plus rigoureux concernant la génération de graines. Pour les utilisateurs, la priorité immédiate est simple : toute personne ayant créé une graine sur un micrologiciel concerné sans entropie de dés indépendante et solide, sans phrase de passe ni protection par signatures multiples doit considérer celle-ci comme compromise et transférer ses fonds avec précaution vers un portefeuille nouvellement généré.
Au-delà de ce vol dévastateur, les adeptes du bitcoin de toute la communauté tirent la sonnette d’alarme et incitent les autres à relayer l’information avant que d’autres portefeuilles vulnérables ne soient vidés.
Cet article a été traduit de l'anglais à l'aide de l'IA. La version originale en anglais fait foi ; les traductions automatiques peuvent contenir des inexactitudes, en particulier dans la terminologie juridique et réglementaire.
















