Bitcoin Core a révélé trois vulnérabilités le 28 octobre et a publié des correctifs dans les versions 29.5, 30.4, 31.2 et 32.1, notamment une faille permettant à un pair malveillant de faire planter les nœuds Windows, macOS et BSD.
Le logiciel Bitcoin Core permet aux opérateurs de valider indépendamment la blockchain Bitcoin et inclut un wallet. Le projet classe deux vulnérabilités de croissance de mémoire comme ayant une gravité moyenne et une troisième, impliquant des données blockchain stockées, comme ayant une gravité faible. Les trois avis ne précisent pas si une exploitation a été observée.
Pour les opérateurs sur les branches 29.x, 30.x et 31.x, les versions ponctuelles corrigées sont 29.5, 30.4 et 31.2, respectivement. Version 32.1 est la dernière version publiée. Les opérateurs utilisant des versions ponctuelles antérieures dans ces branches doivent effectuer une mise à jour.
La faille de plantage non-Linux permet à un attaquant connecté d'envoyer un trafic réseau spécialement marqué, appelé données urgentes TCP, pour contourner les limites sur la quantité de données entrantes qu'un nœud met en file d'attente pour traitement. La file d'attente peut alors croître sans limite jusqu'à ce que le nœud manque de mémoire. Linux n'est pas affecté par cette faille particulière car il utilise un mécanisme différent pour surveiller les connexions réseau.
Le deuxième bug de croissance de la mémoire permet à un pair malveillant de prétendre utiliser un ancien protocole qui ne comporte pas de messages ping modernes, évitant ainsi un déclenchement de délai d'attente qui le déconnecterait normalement. En retardant les lectures, le pair peut faire en sorte que le nœud continue de mettre en file d'attente les annonces. La consommation de mémoire peut augmenter jusqu'à 2 Mo par heure par peer entrant ou 5 Mo par heure par peer sortant. Les nœuds configurés pour relayer uniquement les blocs sont beaucoup moins affectés.
Un risque de stockage séparé persiste
La troisième vulnérabilité concerne les fichiers « undo », qui stockent les informations nécessaires pour annuler les blocs lors d'une réorganisation de la blockchain. Un mineur pourrait forcer ces fichiers à dépasser les limites de taille, corrompant les données ou arrêtant les nœuds affectés. Bitcoin Core considère l'exploitation comme impraticable : sur les systèmes 64 bits, la préparation nécessiterait de miner plusieurs milliers de blocs spécialement construits, avec des conditions supplémentaires précises requises pour une attaque basée sur une réorganisation.
Les correctifs résolvent ce défaut sur les systèmes 64 bits, y compris Windows, mais les systèmes 32 bits et les nœuds stockant les blocs sur un système de fichiers FAT32 restent affectés. Si les données d'annulation ont déjà été corrompues, un redémarrage n'est pas suffisant ; la récupération nécessite de reconstruire l'indice de la blockchain avec une version corrigée.
Les avis attribuent la découverte des trois problèmes à un balayage automatisé par l'IA du projet Loupe de Spiral, avec Gregory Sanders ayant validé les résultats et les signalés à Bitcoin Core. Le projet a classé les trois comme « facilement détectables ». Sa politique de divulgation prévoit la publication des correctifs sur toutes les branches maintenues et un avis sans embargo habituel pour cette catégorie.
Pour effectuer la mise à niveau, les opérateurs doivent arrêter complètement Bitcoin Core avant d'installer ou de remplacer le logiciel, selon les instructions de publication. Ces notes indiquent également que les versions 29.x et antérieures ont atteint la fin de leur cycle de vie et ne recevront plus de mises à jour.


