Vulnérabilité des serveurs de portefeuille Bitcoin
Un serveur de portefeuille Bitcoin malveillant pourrait discrètement échanger un paiement légitime contre une transaction d’un voleur, puis attendre que son propriétaire approuve le vol. Le dernier correctif de sécurité d’Electrum comble cette faille après que des attaquants ont exploité la vulnérabilité pour voler des fonds. Electrum a publié la version 4.8.3 samedi, avertissant les utilisateurs de mettre à jour immédiatement après que les développeurs ont découvert que des serveurs malveillants exploitaient une vulnérabilité de haute gravité affectant toutes les versions antérieures.
Détails de la faille
La faille, documentée dans l’avis GitHub GHSA-6jp4-8v48-cc5v, exploitait la manière dont le portefeuille Bitcoin léger gère les transactions non confirmées. Electrum s’appuie sur des serveurs externes pour les historiques de transactions, les estimations de frais et la diffusion des paiements. Bien qu’il vérifie indépendamment les transactions confirmées, les anciennes versions acceptaient certaines transactions non confirmées sans vérifier leurs signatures. Les attaquants ont transformé cette distinction en un piège.
Un serveur compromis pouvait intercepter un paiement légitime, empêcher sa diffusion et substituer une transaction frauduleuse dirigeant des fonds vers une adresse Bitcoin contrôlée par l’attaquant.
Le remplacement portait des signatures invalides, mais Electrum l’affichait comme un paiement en attente ordinaire. Le stratagème est devenu dangereux lorsque les utilisateurs ont tenté d’augmenter les frais de transaction via Replace-By-Fee (RBF). Plutôt que d’augmenter les frais de leur paiement original, les victimes pouvaient involontairement signer la transaction substituée, autorisant ainsi le transfert de leur propre Bitcoin vers l’attaquant.
La tromperie allait plus loin : les attaquants généraient des adresses de réception dont les quatre derniers caractères correspondaient à la destination prévue, rendant une comparaison rapide des adresses moins susceptible de révéler l’échange. Une transaction frauduleuse portait même des frais nuls, encourageant apparemment sa victime à initier le même ajustement de frais nécessaire pour compléter le vol.
Rapports et correctif
Les développeurs ont reçu deux rapports privés. Le 11 octobre, l’utilisateur dannydeezy a signalé une substitution de transaction, bien que le mécanisme d’augmentation des frais n’ait pas été entièrement compris. Le 18 octobre, Raju-K12 a signalé avoir perdu des fonds après avoir approuvé une augmentation des frais. Ce deuxième rapport a établi que l’attaque n’était pas simplement théorique.
Le correctif, introduit par le commit 90fe308, exige qu’Electrum vérifie les signatures pour les transactions non confirmées dépensant des pièces appartenant au portefeuille. Les transactions frauduleuses avec des signatures invalides sont désormais rejetées avant d’entrer dans l’historique local du portefeuille.
Recommandations pour les utilisateurs
Les utilisateurs exécutant des versions antérieures à 4.8.3 doivent télécharger la mise à jour exclusivement depuis electrum.org et vérifier ses signatures cryptographiques. Jusqu’à la mise à jour, les utilisateurs doivent inspecter soigneusement chaque adresse de destination et montant de paiement avant de signer, y compris lors des ajustements de frais. Ceux qui se connectent exclusivement à des serveurs Electrum de confiance et auto-hébergés ne sont pas exposés à cette attaque particulière basée sur le serveur.
Conclusion
Cet incident expose une contradiction curieuse : un portefeuille conçu pour protéger les clés privées pourrait encore être manipulé pour demander une signature parfaitement valide pour un paiement que son propriétaire n’avait jamais l’intention de faire. Par ailleurs, le fabricant de portefeuilles matériels Keystone a révélé une violation de données clients samedi, après un accès non autorisé à son site Web ayant exposé des noms, des adresses d’expédition et d’autres informations sensibles.