Ce qu’il faut retenir :
- Environ 594 bitcoins, soit 38 millions de dollars, ont été siphonnés de 500 portefeuilles en 25 minutes.
- Coinkite alerte les utilisateurs ayant généré une seed sur un Coldcard Mk3 à partir de la version 4.0.1.
- Les modèles Mk4, Q et Mk5 ne sont pas concernés d’après l’analyse préliminaire du fabricant.
Environ 594 bitcoins, soit près de 38 millions de dollars, ont été vidés de quelque 500 portefeuilles dans la nuit de jeudi à vendredi, dans une attaque attribuée à un défaut de génération des clés sur les portefeuilles matériels Coldcard. Le fabricant canadien Coinkite a publié une alerte de sécurité prévenant que les fonds de certains utilisateurs pouvaient être à risque.
Quels Coldcard sont concernés par la faille ?
L’avertissement vise un modèle précis. Coinkite alerte tous les utilisateurs ayant généré une seed sur un Mk3 équipé de la version 4.0.1 du firmware, sortie en mars 2021, ou de toute version postérieure. Le problème court jusqu’à la version 5.0.3, dernière mise à jour compatible avec ce modèle.
Les Mk4, Q et Mk5 ne seraient pas affectés, d’après l’analyse préliminaire du fabricant. Un point technique compte plus que tout le reste : l’exposition dépend du firmware installé au moment où le portefeuille a été créé, pas de la date d’achat de l’appareil.
Les utilisateurs ayant appliqué une passphrase BIP-39 à une seed Mk3 concernée présentent une exposition limitée, précise Coinkite. Le développeur bitcoin James O’Beirne appelle de son côté à déplacer les fonds sans attendre pour toute personne dont les bitcoins sont sécurisés par une clé unique générée sur un Mk3 entre 2021 et 2023, sans lancers de dés, sans phrase de passe et sans multisignature. Il estime par ailleurs que les Mk2 et Mk4 pourraient également être touchés, contrairement à l’analyse initiale du fabricant.
Comment la faille a transformé des clés impossibles à deviner en clés devinables
Une seed, cette phrase secrète qui contrôle les fonds, doit être tirée au hasard dans un ensemble si vaste que la deviner relève de l’impossible. Le firmware de Coldcard ne le faisait pas.
D’après le rapport publié par les équipes d’ingénierie et de sécurité bitcoin de Block, un paramètre de compilation demandait à l’appareil d’ignorer son propre générateur matériel d’aléa. Une vérification présente dans une bibliothèque annexe testait seulement l’existence de ce paramètre, sans contrôler s’il était activé. La génération de clés basculait alors sur un substitut logiciel élémentaire, alimenté par le numéro de série de la puce et les registres d’horloge.
Aucune de ces deux valeurs n’est secrète. Le numéro de série est une donnée d’usine figée, et les valeurs d’horloge constituent un état temporel qu’un attaquant peut restreindre ou mesurer sur un appareil qu’il possède lui-même. Block fait remonter la modification à un commit daté du 1er mars 2021, embarqué dans le firmware 4.0.0 publié le même mois.
Le déroulé du vol en trois blocs
L’opération a été menée avec méthode. Les fonds ont transité par 1 324 fragments répartis sur 500 transactions, à l’intérieur d’une fenêtre de trois blocs, des blocs 960188 à 960191. Environ 562 bitcoins ont ensuite été regroupés sur une adresse unique qui n’a pas bougé depuis.
Le profil des victimes est homogène : tous les portefeuilles vidés étaient à signature unique et contenaient chacun plus de 0,15 bitcoin. Beaucoup dormaient depuis des années, et les pièces concernées couvrent la période 2021 à 2026, ce qui recoupe presque exactement l’âge de la faille.
Un montant peut-être deux fois plus élevé
Le bilan pourrait s’alourdir. Clay Garrett, de l’équipe d’ingénierie et de sécurité de Block, indique avoir identifié 695 transactions antérieures présentant la même empreinte que celles du lot déjà connu. Ces mouvements portent sur 488,1 bitcoins supplémentaires. S’ils relèvent de la même attaque, le total atteindrait environ 1 082,58 bitcoins.
Coinkite n’a pas confirmé le lien entre le vol et le défaut de sécurité. Plusieurs spécialistes de l’analyse on-chain rapprochent toutefois ces siphonnages d’une entropie insuffisante dans les seeds générées sur Mk3.
Que faire si vous possédez un Coldcard Mk3 ou autre ?
Coinkite recommande de créer sur l’appareil une passphrase BIP-39 forte et unique, puis de transférer les fonds vers le portefeuille qui en résulte. Pour les utilisateurs avancés, le fabricant décrit une seconde voie : générer une seed de remplacement sur un Mk3 vide fonctionnant sous le firmware 4.1.9, via le chemin dédié aux lancers de dés, avec au moins 99 lancers indépendants d’un dé à six faces équilibré. Cette méthode hache directement la séquence de lancers et n’utilise pas le générateur d’aléa de l’appareil.
L’approche privilégiée sur le long terme reste la migration vers une seed générée sur un modèle non concerné. “Précipiter une migration peut créer un risque plus immédiat” que le problème que l’on cherche à corriger, avertit l’équipe.
L’exposition dépasse par ailleurs les seules seeds de portefeuille. Le même générateur produisait les clés privées des portefeuilles papier de Coldcard, où la sortie devient directement la clé, ainsi que les masques de découpe de seed, les clés de clonage d’appareil et les transferts Key Teleport.
Et maintenant ?
Les deux entreprises qualifient leurs analyses de préliminaires. Block précise avoir publié ses conclusions sans avoir achevé les tests confirmant l’exploitabilité, parce que l’exploitation était déjà en cours. Coinkite poursuit son enquête et annonce d’autres éléments à venir, la cause exacte du défaut n’étant pas encore établie. Le périmètre définitif des modèles touchés reste donc la principale inconnue pour les détenteurs concernés.
Cet article vous a plu ? Recevez les prochains par email
Rejoignez +40 000 abonnés. L'essentiel du marché crypto dans votre boîte mail, tous les 2 jours.