Un bug des portefeuilles Coldcard aurait permis le vol de plus de 100 M$ en bitcoin, touchant des milliers d'utilisateurs
Résumé du marché par IA
Des informations faisant état d"un défaut de génération de seed sur Coldcard, permettant à des attaquants de vider un montant estimé à 1 596 BTC (plus de 100 M$) depuis des milliers d"adresses, sapent la confiance dans la sécurité du matériel de self-custody. Bien qu"un firmware corrigé empêche à l"avenir la création de seeds faibles, les portefeuilles générés auparavant restent vulnérables à moins que les utilisateurs ne renouvellent les clés et ne migrent les fonds. L"épisode accroît les primes de risque opérationnel et de conservation autour des pratiques de stockage de Bitcoin et pourrait susciter, à court terme, un positionnement risk-off chez les détenteurs sensibles aux questions de sécurité.
Niveau d'impact
● Moyen
Actifs concernés
BTC/USDT+1.24%
Infos de l'IA · BTC/USDTInfos de l'IA
▼ Baissier
Trader maintenant
⚠️ Les infos générées par l'IA sont basées sur des contenus d'actualité et fournies à titre informatif uniquement. Elles ne constituent pas des conseils en investissement et ne reflètent pas les positions de BingX. Investir comporte des risques. Tradez de manière responsable.
Jonathan Goodman pensait avoir tout fait dans les règles pour protéger ses bitcoins. Son portefeuille matériel Coldcard, qui contenait ses clés, n'avait jamais été connecté à Internet et restait dans un coffre bancaire. Sa phrase de récupération (seed phrase), qu'il n'avait communiquée à personne, était conservée dans un second coffre. Le 29 juillet, affirme-t-il, tous ses portefeuilles ont été vidés : pas un satoshi n'a été épargné. L'entrepreneur torontois dit avoir perdu 18,25 bitcoins, soit un peu plus de 1,17'million de dollars au moment de l'attaque. "Le plus difficile, c'est que j'ai tout fait correctement", a-t-il écrit le 1er août sur X.
Selon Galaxy Research, ce cas s'inscrit dans une campagne de piratage bien plus vaste visant des utilisateurs de Coldcard. Le cabinet dit avoir un "haut niveau de confiance" dans le fait que 1 596 bitcoins, valorisés à plus de 100'millions de dollars, ont été dérobés depuis environ 7 300 adresses au cours d'une série d'attaques. Le 4 août, Alex Thorn, responsable de la recherche chez Galaxy, estimait qu'au moins 15 attaquants distincts exploitaient la faille. Aucun n'avait besoin d'un accès physique à l'appareil.
La promesse de sécurité d'un portefeuille matériel repose sur un principe simple : les secrets ne quittent jamais la puce. Sans connexion Internet, l'attaque à distance est censée être impossible, en dehors des risques "physiques" (perte, vol, ou agression). Dans le cas de Coldcard, cette promesse a été prise en défaut. La vulnérabilité ne se situait pas dans le boîtier lui-même, mais dans la manière dont était générée la phrase secrète (seed phrase) protégeant les fonds.
Les portefeuilles bitcoin se déclinent en plusieurs formats. Les portefeuilles logiciels, ou "hot wallets", fonctionnent sur un appareil connecté à Internet : ils sont pratiques, mais exposés en cas de compromission du terminal. Les portefeuilles matériels, ou "cold wallets", comme Coldcard, conservent les clés sur un appareil séparé non connecté. Avant eux, les "paper wallets" consistaient à noter les clés sur papier : à l'abri des hackers, mais vulnérables à la perte et aux dégradations. Les portefeuilles matériels se veulent un compromis : plus difficiles à pirater qu'un logiciel, moins fragiles qu'un papier, mais pas infaillibles.
"Les systèmes isolés (air-gapped) aident, mais ne constituent pas une solution parfaite", a déclaré Bobby Gray, fondateur de TEXITcoin, à CoinDesk. "La sécurité doit commencer par la génération des clés et se prolonger dans chaque étape de la conservation." C'est précisément à ce stade que la chaîne s'est rompue chez Coinkite, fabricant de Coldcard.
En mars 2016, Coinkite, société bitcoin basée à Toronto, annonçait l'arrêt progressif de son portefeuille en ligne. L'exploitation d'un service financier connecté entraînait des attaques récurrentes par trafic parasite visant à le mettre hors ligne, ainsi qu'une hausse des coûts juridiques et des contraintes réglementaires. L'entreprise disait vouloir se réorienter vers du matériel décentralisé et du "software not as a service". À l'époque, avant le deuxième halving de Bitcoin, un bitcoin s'échangeait légèrement au-dessus de 400'dollars.
Ce virage a d'abord donné naissance à Opendime en avril 2016 : une clé USB générant et dissimulant une clé privée, permettant de transmettre des bitcoins comme un instrument au porteur. Briser physiquement le scellé révélait la clé et rendait les fonds dépensables. Coldcard a suivi. Coinkite a annoncé l'appareil en décembre 2017 sous le titre "The World Needs An Open, Cheap & Ultrasecure Hardware Wallet". L'entreprise y critiquait des portefeuilles matériels jugés trop chers et dépendants d'applications propriétaires. Le design initial combinait pavé numérique, écran, composant sécurisé et emplacement MicroSD, avec un transfert de transactions signées et non signées via fichiers, sans connexion de données en direct. Aucun compte Coinkite ni application de bureau n'était requis. Les premières unités ont été expédiées en 2018. Le modèle suivant, lancé en avril 2019, ajoutait de nouvelles fonctionnalités, rendant l'ensemble plus complexe.
Cette complexité faisait partie de l'attrait : Coldcard ciblait des utilisateurs prêts à vérifier les détails des transactions, gérer des sauvegardes et bâtir leur propre modèle de sécurité. PINs sous contrainte, sauvegardes MicroSD chiffrées, support multisignature et jets de dés fournis par l'utilisateur figuraient parmi les options pensées pour une conservation "adversariale". Le code source était public, permettant d'inspecter le firmware, de reproduire un build et de le comparer à la version publiée, dans l'esprit "don't trust, verify". Malgré cette transparence, la défaillance de génération des seeds a été introduite lors d'un changement logiciel majeur en 2021 et est restée inaperçue pendant des années.
Coinkite présentait le firmware 4.0.0 comme "All New Code, Same Great Features". Cette version remplaçait le code par de nouveaux équivalents, ajoutait des builds reproductibles et remerciait un compte nommé "switck" pour la "nouvelle bibliothèque de code source". Le développeur Bitcoin James O'Beirne a attribué ce compte à Peter Gray, cofondateur de Coinkite, après avoir identifié 58 modifications publiées sous "switck" portant la même signature cryptographique que celles publiées au nom de Gray. Coinkite n'a pas répondu à cette affirmation.
Switck a développé libngu, un ensemble de code réutilisable intégré au firmware Coldcard installé sur les appareils des clients. L'une de ses fonctions consistait à produire l'aléa utilisé lors de la création des portefeuilles. O'Beirne affirme avoir questionné ce processus en mai 2025 lors d'un audit du code. Après avoir relié la source d'aléa à libngu, il a évoqué la possibilité d'un défaut auprès de Coinkite. D'après lui, l'entreprise a répondu qu'un problème réel aurait probablement déjà été détecté. "C'est le même gars qui a balayé mon signalement en mai 2025", a-t-il écrit plus tard à propos de Peter Gray.
L'aléa est central, car un nouveau portefeuille doit choisir une seed parmi un nombre gigantesque de valeurs possibles. L'imprévisibilité se mesure en bits d'"entropie" : chaque bit supplémentaire double le nombre de combinaisons et rend la seed plus difficile à deviner. Coldcard était censé obtenir cette entropie via un générateur matériel dédié dans l'appareil. Une erreur de configuration a orienté le portefeuille vers un générateur logiciel plus simple, basé notamment sur des informations liées à l'appareil et au timing. Ces données n'étant pas totalement aléatoires, elles peuvent être restreintes ou reproduites, réduisant drastiquement le nombre de seeds qu'un attaquant doit tester.
En pratique, le code devait sélectionner le secret de chaque portefeuille dans un espace si vaste qu'aucun ordinateur ne pourrait l'explorer intégralement. Une erreur de câblage a basculé le système vers une source plus faible, ramenant l'espace de recherche à une taille exploitable. D'après l'équipe d'ingénierie et de sécurité Bitcoin de Block, le problème provenait de la façon dont deux composants logiciels communiquaient pour lire un paramètre. Ce paramètre devait désactiver une source de nombres aléatoires après l'ajout d'une autre. Libngu vérifiait seulement l'existence du paramètre, pas son état (activé/désactivé). Le firmware se compilait donc normalement, tout en utilisant le mauvais générateur.
Block indique que les appareils Mk2 et Mk3 concernés n'obtenaient aucune entropie sécurisée via ce mécanisme. Les modèles Mk4, Q et Mk5 en recevaient une partie, mais le logiciel n'en conservait qu'une faible fraction. Coinkite estime que ces modèles plus récents généraient des seeds avec 72 bits d'entropie au lieu des 128 bits prévus, soit environ 72 quadrillions de fois moins de seeds possibles.
Block a relié le code vulnérable à la version 4.0.0 du firmware, publiée le 17 mars 2021. Coinkite identifie la version 4.0.1 comme première version affectée pour les utilisateurs Mk2 et Mk3. Le code source était disponible publiquement, et le bon générateur matériel était présent dans le firmware final. Des examinateurs ont confirmé l'existence du composant, sans reconstituer intégralement la chaîne de génération de seed pour vérifier quel générateur était réellement utilisé. Coinkite affirme que des revues assistées par IA menées avant les vols n'avaient pas détecté l'erreur. Des tests réalisés après l'incident avec plusieurs modèles d'IA de premier plan n'auraient pas non plus permis de l'identifier.
Coinkite promet de publier un compte rendu plus complet et dit soutenir directement les clients touchés. L'entreprise n'a pas répondu à une demande de commentaire de CoinDesk. Des firmwares corrigés ont été publiés pour tous les modèles et branches de mise à jour concernés. La correction sécurise la génération des seeds à l'avenir, sans renforcer celles déjà créées avec le logiciel vulnérable. Selon l'avis de Coinkite, les utilisateurs concernés doivent installer le firmware corrigé, générer une nouvelle seed, puis transférer leurs bitcoins vers des adresses dérivées de cette nouvelle seed.
Coldcard s'inscrivait dans l'idée que les détenteurs de bitcoins peuvent se passer de gardiens et réduire le nombre d'intermédiaires à qui faire confiance. L'incident ne réhabilite pas la confiance dans une plateforme d'échange ou une banque ; il met en lumière une autre dépendance de l'auto-conservation : l'utilisateur détient les clés, mais le fabricant du portefeuille détermine si ces clés ont été générées en toute sécurité. La clé du stock de bitcoins d'un million de dollars de Jonathan Goodman était dans un coffre bancaire, dans un appareil jamais connecté. La faille de génération des seeds a rendu cette protection physique inefficace.