Cryptonews

Un bug Bitcoin a permis aux mineurs d’exécuter du code sur les nœuds d’autres personnes

Source
CryptoNewsTrend
Published
Un bug Bitcoin a permis aux mineurs d’exécuter du code sur les nœuds d’autres personnes

Les développeurs de Bitcoin Core ont divulgué aujourd'hui un bug qui a permis aux mineurs de planter et d'exécuter du code à distance sur les nœuds d'autres personnes.

La vulnérabilité, CVE-2024-52911, a affecté Bitcoin Core 0.14.1 à 28.4. Le développeur Cory Fields a divulgué et aidé à corriger de manière responsable l'erreur de haute gravité via la Pull Request (PR) 31112.

Si un mineur avait voulu utiliser cette astuce obscure, il aurait pu exécuter du code logiciel sur divers nœuds à travers le monde.

Heureusement, le bug est resté obscur et n’a probablement pas été utilisé en raison de son vecteur d’attaque incroyablement coûteux.

Plus précisément, l’attaque nécessitait qu’un mineur dirige sa puissance de hachage, gourmande en électricité, vers l’extraction de types spéciaux de blocs. Coût d’opportunité garanti, ces blocs invalides ne pourraient pas devenir éligibles à une véritable récompense Coinbase pour récupérer les coûts d’électricité des mineurs.

Pourtant, le mécanisme d’attaque est facile à comprendre, bien que coûteux à mettre en œuvre.

Nous publions des avis de sécurité Bitcoin Core depuis environ 2 ans maintenant, et (autant que je sache) nous venons de divulguer le tout premier problème de sécurité de la mémoire : une utilisation après libération dans le moteur de validation. Crédit à Cory Fields du DCI pour la recherche et le reporting.

– Niklas Gögge (@dergoegge) 5 mai 2026

Un mineur qui produisait un bloc spécialement conçu avec une preuve de travail suffisante pourrait soit faire planter les nœuds victimes et/ou utiliser le crash pour dépasser sa mémoire pour l'exécution de code à distance.

Bitcoin Core a admis que l'exécution de code à distance était possible, bien qu'il n'ait pas cité d'exemples spécifiques de cela. Il a mis en évidence non seulement son coût et son ancienneté, mais également les contraintes sur les blocs de données qui ont rendu historiquement improbable que les mineurs se livrent à des épisodes significatifs de marionnettes.

Les anciens nœuds Bitcoin risquent toujours de tomber en panne

L'avis de Bitcoin Core décrit le bug comme un crash de l'interpréteur de script. Lors de la validation du bloc, le logiciel Bitcoin Core précalcule et met en cache les données d'entrée de transaction, puis distribue le travail de validation du script aux threads d'arrière-plan qui utilisent la mémoire de l'ordinateur.

S'il était soumis à une attaque CVE-2024-52911, le nœud pourrait continuer à lire dans sa mémoire cache après que ces données aient déjà été libérées de la mémoire par un autre processus.

Étant donné que cette attaque est un bug de mémoire d'utilisation après libération, l'exécution de code à distance est possible pendant cet état de mémoire anormal.

En particulier, l’exécution de code à distance pourrait se produire lorsque le thread de script en arrière-plan du nœud lisait des données de transaction précalculées et mises en cache après qu’elles aient été détruites par une validation de script, CScriptCheck.

Étant donné que la mise à niveau d'un nœud complet Bitcoin est volontaire et que les mises à jour logicielles ne sont pas automatiques, une minorité non négligeable du réseau a retardé la mise à niveau vers la version 29 (v29) ou supérieure.

Plus précisément, selon une estimation populaire, jusqu'à 43 % des nœuds Bitcoin exécutent toujours un logiciel de nœud complet vulnérable basé sur du code antérieur à la v29.

Bitcoin Core retire les téléchargements de la v30 suite à un bug qui peut effacer les portefeuilles de l'ère Satoshi

Divulgation responsable en 2024

Dès novembre 2024, Cory Fields a détecté et signalé le bug en privé.

Quatre jours après la détection, Pieter Wuille a proposé une proposition de correctif sous le nom de PR 31112, intitulée « Améliorer la journalisation du débogage des erreurs de validation des scripts parallèles ».

L’avis se lit délibérément comme une solution de plomberie banale de type maintenance. Sans sonner l’alarme, il a corrigé la gestion des retours de la file d’attente de contrôle et les validations de script de Bitcoin Core.

Rapidement, le PR de Fields et Wuille a obtenu un consensus technique pour une fusion en production d'ici décembre 2024. Bitcoin Core 29.0 a été livré avec le correctif d'ici avril 2025, et la dernière ligne de version vulnérable, les versions 28.x, a atteint sa fin de vie le 19 avril 2026.

Maintenant que les opérateurs de nœuds ont eu plusieurs mois pour effectuer la mise à niveau et conformément à une politique de ces dernières années consistant à divulguer publiquement d'anciennes corrections de bugs auparavant secrètes, Bitcoin Core a finalement annoncé le bug aujourd'hui sur son site Web.

Niklas Gögge, développeur de Bitcoin Core, a noté à juste titre qu'il s'agissait du « tout premier problème de sécurité de la mémoire » dans Bitcoin Core. Il a remercié Fields pour sa divulgation responsable.

Les règles de consensus de Bitcoin n’ont pas été modifiées par la correction du bug. Le bogue concernait le logiciel du nœud et son utilisation des vérifications de la mémoire de l'ordinateur, et le correctif se trouve déjà dans les versions actuelles de Bitcoin Core v29 et ultérieures.

Un bug Bitcoin a permis aux mineurs d’exécuter du code sur les nœuds d’autres personnes