Bug de firmware sur les Coldcard : jusqu'à 130 M$ de pertes en bitcoin liées à des graines faibles

Les équipes Bitcoin Engineering & Security de Block, épaulées par des développeurs indépendants de Bitcoin Core, attribuent la récente série de vols touchant des portefeuilles matériels Coinkite Coldcard à un défaut précis de firmware. En cause : un mécanisme de génération d'aléa qui basculait de la source matérielle STM32 vers une solution de repli déterministe de MicroPython (Yasmarang), réduisant fortement la qualité cryptographique des graines (seeds) dès leur création, avant même que l'utilisateur ne manipule sa phrase de récupération. Selon les analyses publiées, les Coldcard Mk2 et Mk3 équipées des firmwares 4.0.1 à 4.1.9 ont pu produire des seeds dont l'entropie s'effondrait vers un ensemble restreint et donc "recherchable". Les modèles Mk4, Q et Mk5 seraient moins touchés, mais avec une entropie estimée autour de 72 bits, bien en-deçà des 128 bits visés par la conception. Le point critique : l'utilisateur pouvait noter 12 ou 24 mots, les conserver hors ligne pendant des années, et malgré des pratiques irréprochables, détenir une clé qu'un attaquant pouvait reconstruire en explorant l'espace réduit généré par la solution de repli. Coinkite indique que la mise à jour ne protège que les nouvelles graines générées après installation du correctif. Toute seed issue de la voie vulnérable doit être remplacée : l'éditeur recommande de générer une nouvelle phrase et de transférer les fonds. Importer l'ancienne phrase dans un autre portefeuille matériel ne corrige rien, la faiblesse étant intrinsèque aux mots de récupération. Coinkite s'était imposé grâce à des caractéristiques prisées en auto-conservation (firmware "Bitcoin-only", signature air-gapped, double secure element, code publié, builds reproductibles). Les reconstructions du firmware publiées confirment l'intégrité de distribution (le binaire correspond au code publié), sans pour autant garantir qu'un audit ait validé en profondeur le chemin de génération de seed. D'après les notes techniques, un examen antérieur avait bien repéré la présence du générateur matériel dans le binaire, sans établir que la routine de génération de seed l'utilisait effectivement. La voie vulnérable aurait été livrée à partir de 2021 et serait restée en circulation jusqu'à la divulgation de juillet, soit une fenêtre d'environ cinq ans pendant laquelle le code était public sans que la faille ne soit détectée. Deux catégories d'utilisateurs disposent toutefois d'une protection additionnelle contre la reconstruction de seed, même si Coinkite recommande malgré tout la migration. D'abord, ceux qui avaient défini une passphrase BIP39 forte et unique : la seed finale est dérivée des mots mnémoniques combinés à un sel incluant la passphrase, ce qui produit un portefeuille différent à passphrase différente. Ensuite, les utilisateurs ayant ajouté une entropie externe suffisante, notamment via au moins 50 lancers de dés "justes", indépendants et réalisés en privé, ce qui évite de dépendre uniquement de l'aléa du dispositif. Andrew Mannoukas, CISO de Xapo Bank, résume l'enseignement dans une note citée par CryptoSlate : "La leçon de cet incident n'est pas que les hardware wallets sont mauvais ; c'est que la concentration est dangereuse. Quand la sécurité de votre Bitcoin est réduite à un seul secret, créé sur un seul appareil, à un seul moment non reproductible, vous héritez de toutes les hypothèses intégrées à cet instant." Il rappelle aussi que, selon les données du secteur, la majorité des pertes proviennent désormais de la gestion des clés et d'échecs opérationnels, plus que d'attaques sur la cryptographie elle-même. L'épisode relance également le débat sur le multisig. Un montage 2-sur-3 protège contre la compromission d'une clé isolée, mais trois clés produites par la même implémentation défaillante reviennent à concentrer le risque dans un même "domaine de défaillance". La documentation Coldcard permet en outre de créer plusieurs co-signataires sur un seul appareil via des passphrases différentes, ce qui peut donner une impression de diversification sans indépendance réelle. L'enjeu devient alors : qui a généré chaque clé, avec quelle implémentation, et quelle source d'entropie. En parallèle, certains observateurs rapprochent cette affaire d'un autre débat, côté Ledger. Le service optionnel Recover chiffre et duplique l'entropie de portefeuille dans le Secure Element, découpe le résultat en trois fragments chiffrés et les transmet à des prestataires distincts, avec abonnement et validation physique sur l'appareil. Là, la frontière de sécurité se déplace en dehors du dispositif dans des conditions explicites. Dans le cas de Coinkite, le problème se situe en amont : le secret aurait été fragilisé avant même que la frontière du matériel ne joue son rôle. Dans les deux cas, c'est bien le logiciel du fabricant qui détermine où se situe réellement la limite de sécurité, au-delà du marketing. Côté chiffres, les premiers "sweeps" auraient retiré environ 594 BTC depuis quelque 500 portefeuilles. Des chercheurs on-chain ont ensuite associé au moins trois vagues suspectes totalisant près de 1'367 BTC sur plus de 4'500 adresses, valorisées autour de 89 M$ au moment des faits. Des signalements du 3 août évoquent une possible quatrième vague pouvant porter le total vers 114 M$. Alex Thorn (Galaxy Digital) avertit toutefois que les motifs observés sur la blockchain ne suffisent pas à établir définitivement le lien entre toutes les adresses balayées et les firmwares Coldcard vulnérables, ce qui rend l'attribution provisoire. Le 4 août, Lookonchain, citant Galaxy Research, estime que les pertes liées aux Coldcard pourraient atteindre 2'055 BTC, soit environ 130 M$, sur plus de 7'700 adresses affectées. Les statistiques d'enquêtes sectorielles renforcent le constat : TRM Labs indique que les compromissions d'infrastructure et d'opérations, principalement le vol de clés privées et de seed phrases, ont représenté environ 76% de la valeur dérobée lors des hacks crypto au premier semestre 2026, pour environ 15% des incidents. CertiK classe de son côté la compromission de portefeuilles comme la catégorie d'attaque la plus coûteuse sur la période, avec plus de 444 M$ sur 33 incidents. Les attaquants gagnent davantage à viser les systèmes et processus autour des clés qu'à s'en prendre à la cryptographie. Le fondateur de Coinkite, Rodolfo Novak, a présenté des excuses publiques, dit assumer l'entière responsabilité et proposé son assistance pour les démarches (plaintes, assurances, investigations blockchain). Au 3 août, l'indemnisation ne figurait pas parmi les mesures annoncées. Contrairement à une plateforme d'échange pouvant parfois mobiliser réserves ou assurances, un fabricant de portefeuille matériel vend un produit tout en laissant la garde du bitcoin à l'utilisateur, ce qui laisse la question de la responsabilité en cas de défaut au cœur d'une zone grise. Pour la suite, un scénario favorable verrait la migration des fonds dépasser l'apparition de nouvelles vagues de vol, et les fabricants adopter des attestations d'entropie, des tests renforcés de génération de seed et des outils plus clairs de rotation d'urgence des clés. Passphrases, entropie externe (dés) et multisig correctement diversifié pourraient passer du statut de "bonne pratique avancée" à celui de recommandation par défaut. Un scénario défavorable reste possible : découverte d'autres chemins de "seeds faibles" sur d'autres modèles ou procédures d'installation, érosion de la confiance plus rapide que la capacité de patch. Les migrations paniquées peuvent aussi générer des pertes secondaires (réutilisation d'adresses, transferts précipités) et nourrir une nouvelle vague d'arnaques au faux support visant les utilisateurs en cours de sécurisation. L'auto-conservation retire aux échanges le pouvoir de geler un retrait, de réhypothéquer des dépôts ou d'entraîner des clients dans une faillite. Mais une dépendance demeure : le fabricant du dispositif qui transforme l'aléa en clé. Une seed unique, née sur un matériel à un instant non reproductible, ne devient véritable souveraineté que si elle est épaulée par une seconde hypothèse indépendante.