Les développeurs de Bitcoin Core ont divulgué un bug de haute sévérité qui pourrait permettre à des Mineurs de faire planter à distance certains nœuds Bitcoin.
Le problème, référencé sous CVE-2024-52911, affectait les versions de Bitcoin Core postérieures à 0.14.0 et antérieures à 29.0. Le bug a été corrigé dans Bitcoin Core 29.0, publié en avril 2025.
Bitcoin Core a rendu le problème public le 5 mai 2026, après que la dernière ligne de version vulnérable 28.x a atteint sa fin de vie le 19 avril.
Le problème concernait l'interpréteur de scripts de Bitcoin Core lors de la validation des blocs. Bitcoin Core a indiqué qu'un bloc spécialement conçu pouvait amener un nœud à accéder à la mémoire après que ces données avaient déjà été libérées.
Lors de la validation, Bitcoin Core précalcule les données d'entrée des transactions et envoie les vérifications de scripts à des threads en arrière-plan. Dans certains cas, un bloc invalide pouvait détruire des données en cache pendant qu'un autre thread tentait encore de les lire.
Bitcoin Core a déclaré que cela pourrait permettre à un attaquant disposant d'une preuve de travail suffisante de faire planter les nœuds victimes. Il a également précisé qu'« il est possible » que le plantage puisse faciliter l'exécution de code à distance, bien que les limites sur les données de bloc rendent ce résultat « peu probable ».
L'attaque n'était pas simple à réaliser. Un Mineur devrait produire un bloc spécialement conçu avec suffisamment de preuve de travail pour atteindre la pointe de la chaîne.
Cela rendait l'attaque coûteuse car un tel bloc serait invalide. Il ne pourrait pas obtenir une récompense de bloc normale, laissant l'attaquant dépenser de la puissance de hachage sans percevoir la rémunération habituelle du Mining.
Bitcoin Core n'a pas indiqué que le bug avait été utilisé dans de vraies attaques. L'avis s'est concentré sur la faille, le correctif et le calendrier de divulgation.
Le 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 définissant les transactions ou les blocs Bitcoin valides.
Cory Fields de la MIT Digital Currency Initiative a signalé le bug en privé le 2 novembre 2024. Bitcoin Core a indiqué que le rapport incluait une preuve de concept et une proposition pour réduire le risque.
Pieter Wuille a poussé un correctif discret quatre jours plus tard via la PR 31112. La pull request a été fusionnée le 3 décembre 2024, avant que Bitcoin Core 29.0 ne soit livré avec le correctif en avril 2025.
L'avis a suivi la politique de divulgation de Bitcoin Core pour les bugs de haute sévérité. Sa politique stipule que les problèmes de haute sévérité sont divulgués après que la dernière version affectée 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 à l'ancien bug. Bitcoin Core ne se met pas à jour automatiquement, les utilisateurs doivent donc installer les nouvelles versions manuellement.
Un rapport antérieur sur les risques de décentralisation des blockchains citait des recherches indiquant que 21 % des nœuds Bitcoin utilisaient un logiciel Bitcoin Core obsolète en juin 2021. Ce contexte illustre pourquoi les anciennes versions des clients peuvent rester une préoccupation de sécurité longtemps après la publication des correctifs.

