Un bug de haute gravité dans le logiciel Bitcoin révélé 2 ans après le correctif

Un bogue de gravité "élevée" dans le logiciel Bitcoin révélé 2 ans après le correctif - Bogue Bitcoin CoreUn bug majeur dans le logiciel Bitcoin Core, à ne pas confondre avec Bitcoin System, aurait pu permettre aux attaquants de voler des fonds, de retarder des accords ou de diviser le plus grand réseau de blockchain en versions conflictuelles s'il n'avait pas été secrètement résolu il y a deux ans.

Le bug dans le code

Un article publié mercredi par Braydon Fuller, ingénieur de protocole sur le site d'achat de crypto Purse, et Javed Khan, un développeur senior du protocole Handshake, disent avoir détecté la vulnérabilité en juin 2018.

Le bogue a reçu un niveau de gravité de 7,8 sur une échelle de 1 à 10, ce qui est considéré comme «élevé» (9 et plus est considéré comme «critique»). Le problème a été causé par l'échec des «nœuds distants» à effacer les transactions invalides de leur mémoire, a déclaré Khan.

Le fait de ne pas annuler de telles transactions pourrait conduire à une attaque qui charge le 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 ce bogue. Les nœuds complets de Bitcoin, en revanche, ne risquaient pas de perdre des fonds.

Aucune tentative d'exploiter le problème n'a été révélée, ont écrit Khan et Fuller. La vulnérabilité n'a pas été divulguée publiquement depuis plus de deux ans, car les opérateurs de nœuds ont mis plus de temps que prévu à se mettre à jour, a déclaré Fuller.

Bien que le bogue ait été corrigé, sa divulgation met en évidence les difficultés de construction d'une norme monétaire mondiale sur les langages de programmation créés par l'homme, sans parler des obstacles techniques élevés dans le développement de la plus grande crypto-monnaie au monde.

Le problème dans le code a été inséré dans Bitcoin Core en novembre 2017. Environ 50% des nœuds Bitcoin à l'époque étaient potentiellement exposés à une attaque, selon le document. Les versions précédentes de Bitcoin Core n'ont pas rencontré ce type de problème.

Pas seulement Bitcoin Core

Khan a déclaré que la vulnérabilité aurait pu permettre à un attaquant de voler des fonds à des nœuds qui avaient des canaux ouverts sur Lightning. Les versions 0.16.0 et 0.16.1 de Bitcoin Core ont été analysées et corrigées par le développeur Matt Corallo suite à la divulgation de Fuller à l'équipe Core en juillet 2018.

Bitcoin Core est l'implémentation de référence, ou version standard, du logiciel réseau dont de nombreux autres sont issus. Selon le document, le bogue aurait également pu impliquer plusieurs autres implémentations de Bitcoin et de ses dérivés:

  • Nœuds Bitcoin 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
  • Nomcoin Core v0.16.1
  • Toutes les versions de Dcrd jusqu'à la v1.5.1.

Toutes ces implémentations ont été corrigées.