Découverte d’un Bug Critique dans Bitcoin Core
Les développeurs de Bitcoin Core ont récemment découvert un bug critique qui pourrait permettre aux mineurs de provoquer le plantage à distance de certains nœuds Bitcoin. Ce problème, référencé sous le nom de CVE-2024-52911, a affecté les versions de Bitcoin Core allant de 0.14.0 à 28.x. Il a été corrigé dans la version 29.0 de Bitcoin Core, publiée en avril 2025. Bitcoin Core a rendu ce problème public le 5 mai 2026, après que la dernière version vulnérable, 28.x, ait atteint sa fin de vie le 19 avril.
Nature du Bug
Le bug concernait l’interpréteur de script de Bitcoin Core lors de la validation des blocs. Selon les développeurs, un bloc spécialement conçu pourrait amener un nœud à accéder à des données en mémoire qui avaient déjà été libérées. Lors de la validation, Bitcoin Core pré-calculait les données d’entrée des transactions et envoyait des vérifications de script à des threads en arrière-plan. Dans certains cas, un bloc invalide pouvait corrompre des données mises en cache alors qu’un autre thread tentait encore de les lire.
Bitcoin Core a indiqué que cela pourrait permettre à un attaquant disposant d’une preuve de travail suffisante de faire planter des nœuds victimes. Il a également été mentionné qu’il est possible que ce crash puisse permettre l’exécution de code à distance, bien que des limitations sur les données de bloc rendent ce scénario improbable.
Complexité de l’Attaque
L’attaque n’était pas simple à réaliser : un mineur aurait dû produire un bloc spécialement conçu avec suffisamment de preuve de travail pour atteindre le sommet de la chaîne. Cela rendait l’attaque coûteuse, car un tel bloc serait invalide et ne pourrait pas générer de récompense de bloc normale, laissant l’attaquant dépenser de la puissance de hachage sans recevoir le paiement habituel du minage.
Bitcoin Core n’a pas signalé que le bug ait été exploité dans des attaques réelles. L’avis se concentrait sur la nature du défaut, la correction apportée et le calendrier de divulgation. Il est important de noter que ce bug n’a pas modifié les règles de consensus de Bitcoin. Il était lié à la gestion de la mémoire dans le logiciel Bitcoin Core, et non aux règles qui définissent les transactions ou blocs Bitcoin valides.
Chronologie de la Découverte et Correction
Cory Fields, de l’Initiative de Monnaie Numérique du MIT, a signalé le bug de manière privée le 2 novembre 2024. Bitcoin Core a précisé que le rapport incluait une preuve de concept ainsi qu’une proposition pour réduire le risque. Quatre jours plus tard, Pieter Wuille a soumis une correction secrète via la PR 31112. Cette demande de tirage a été fusionnée le 3 décembre 2024, avant que la version 29.0 de Bitcoin Core ne soit publiée avec la correction en avril 2025.
Politique de Divulgation et Risques Persistants
L’avis a suivi la politique de divulgation de Bitcoin Core pour les bugs critiques, qui stipule que les problèmes de haute gravité sont divulgués après que la dernière version affectée ait atteint sa fin de vie. De plus, les opérateurs de nœuds utilisant des versions de Bitcoin Core antérieures à 29.0 sont toujours exposés à ce bug. Bitcoin Core ne se met pas à jour automatiquement, ce qui signifie que les utilisateurs doivent installer manuellement les versions les plus récentes.
Un rapport précédent sur les risques de décentralisation de la blockchain a révélé que 21 % des nœuds Bitcoin exécutaient un logiciel Bitcoin Core obsolète en juin 2021. Ce contexte souligne pourquoi les anciennes versions des clients peuvent rester une préoccupation en matière de sécurité longtemps après la publication des corrections.