Un bug de gravité « élevée » dans le logiciel Bitcoin révélé deux ans après sa correction
Un bug jusqu'alors non divulgué dans Bitcoin CORE aurait pu permettre aux attaquants de voler des fonds du Lightning Network, de retarder les transferts ou de diviser le réseau s'il n'avait pas été corrigé en 2018.
Une vulnérabilité jusqu'alors non révélée dans le logiciel Bitcoin CORE aurait pu permettre aux attaquants de voler des fonds, de retarder les règlements ou de diviser le plus grand réseau de blockchain en versions conflictuelles si elle n'avait pas été discrètement corrigée il y a deux ans.
C'est ce qu'affirme unpapierpublié mercredi par Braydon Fuller, ingénieur de protocole sur le site d'achat de Crypto Purse, qui a détecté la vulnérabilité par déni de service en juin 2018, et Javed Khan, développeur CORE du protocole Handshake.
La vulnérabilité a reçu un niveau de gravité de 7,8 sur une échelle de 1 à 10, ce qui est considéré comme « élevé » (9 ou plus étant considéré comme « critique »). Elle a été causée par l'incapacité des « nœuds distants » à effacer les transactions invalides de leur mémoire, a déclaré Khan à CoinDesk.
L'incapacité à effacer ces transactions pourrait conduire un agresseur à inonder un nœud victime avec des données obsolètes dans ce que l'on appelle une « consommation de ressources incontrôlée », provoquant finalement l'arrêt du nœud, indique le document.
Les solutions de couche 2 (L2), telles que Lightning Network, le système de paiement expérimental basé sur la blockchain Bitcoin , étaient menacées par cette vulnérabilité. Les nœuds Bitcoin complets ne risquaient pas de perdre leurs fonds.
Sur le même sujet : La dernière version du code de CORE de Bitcoin protège contre les attaques des États-nations
« Il n'existait aucun mécanisme permettant de garantir la validité des détails d'une transaction en attente. Dans certains cas, la mémoire distante pouvait être saturée de transactions invalides », a expliqué Khan.
Aucune tentative d'exploiter la faille n'a été détectée, ont écrit Khan et Fuller. La vulnérabilité n'a pu être divulguée publiquement pendant plus de deux ans, les opérateurs de nœuds ayant mis plus de temps que prévu à la mettre à jour, a précisé Fuller.
Bien que la vulnérabilité ait été corrigée, sa Déclaration de transparence met en évidence les difficultés de construire une norme monétaire mondiale sur des langages de programmation créés par des humains, sans parler des barrières techniques élevées qui empêchent de s'engager dans le développement de la principale Cryptomonnaie.
La vulnérabilité a été introduite dans Bitcoin CORE en Novembre 2017Selon l'article, environ 50 % des nœuds Bitcoin de l'époque étaient exposés à ce vecteur d'attaque. Les versions antérieures de Bitcoin CORE n'étaient pas affectées.
Bitcoin CORE et plus
Khan a déclaré que la vulnérabilité aurait pu permettre à un attaquant de voler des fonds à partir de nœuds qui avaient des canaux ouverts sur Lightning.
Les versions 0.16.0 et 0.16.1 de Bitcoin CORE ont été affectées et corrigé par le développeur Matt Corallo suite à la Déclaration de transparence de Fuller à l'équipe CORE en juillet 2018. Corallo n'a pas répondu aux questions demandant des commentaires avant l'heure de la presse.
La À découvrir de Fuller (qui a également travaillé comme développeur principal du protocole de stockage cloud décentralisé STORJ) a été suivie d'une autre Bug Bitcoin résolu deux mois plus tard dans Bitcoin CORE 0.16.3. Également un vecteur pour un attaque par déni de service, un aspect de ce bug permettait aux mineurs de « gonfler l'offre de Bitcoin« car ils pourraient dépenser deux fois certaines valeurs, l'équipe Bitcoin CORE a écrit à l'époque.
Le correctif d'urgence publié dans cette version Bitcoin CORE a également corrigé le bug de Fuller, ont écrit Khan et Fuller.
Une place a été réservée à la vulnérabilité de consommation de ressources dans le registre des vulnérabilités et expositions communes (CVE) du National Institute of Standards and Technology.CVE-2018-17145en 2018, mais il n'a pas encore été complété. Le registre sert de glossaire public des bugs logiciels importants.
Bitcoin CORE est l'implémentation de référence, ou version standard du logiciel réseau, dont d'autres sont dérivées. Selon l'article, l'exploit était également possible sur plusieurs autres implémentations de Bitcoin et de ses dérivés :
- Bitcoin Knots v0.16.0
- Toutes les versions bêta de Bcoin jusqu'à la v1.0.0-pre
- Toutes les versions de Btcd jusqu'à la v0.20.1-beta
- Litecoin CORE v0.16.0
- Namecoin CORE v0.16.1
- Toutes les versions de Dcrd jusqu'à la v1.5.1.
Toutes ces implémentations ont été corrigées.
MISE À JOUR (10 septembre, 15h45 UTC) :Depuis sa publication, cet article a été mis à jour pour inclure un LINK vers l'article et des informations supplémentaires sur ONEun de ses co-auteurs et sur la vulnérabilité qu'il décrit.
William Foxley
Will Foxley est l'animateur de The Mining Pod et éditeur chez Blockspace Media. Ancien coanimateur de The Hash sur CoinDesk, Will était directeur du contenu chez Compass Mining et journaliste spécialisé en technologie chez CoinDesk.
