CVE-2026-117349 : des pairs en pause pré-BIP31 provoquent une croissance mémoire lente et illimitée
Bitcoin Core a corrigé une faille liée à la gestion des files d'attente envoyées aux pairs, qui pouvait faire croître la mémoire utilisée sans limite dans certains cas. Le correctif a été inclus dans les versions 29.5, 30.4, 31.2 et 32.1, avec une divulgation publique le 2026-10-28.
Le problème concernait les annonces ajoutées à la file d'envoi, y compris pour des pairs mis en pause. Bitcoin Core applique normalement un mécanisme de backpressure, c'est-à-dire une pression de retour pour ralentir les communications avec les pairs trop lents à lire les messages. Mais même lorsqu'un pair était marqué comme "paused for send purposes", certaines annonces continuaient d'être ajoutées à la file, notamment les fréquentes transaction INVs.
Des pairs anciens pouvaient rester en pause indéfiniment
Dans le fonctionnement habituel, un pair qui ne répond pas à un message ping doté d'un nonce dans les 20 minutes est déconnecté. Ce mécanisme ne s'appliquait toutefois pas aux pairs qui ne prennent pas en charge les messages BIP 31 nonced ping. Un pair malveillant pouvait donc prétendre ne pas supporter cette fonctionnalité et retarder volontairement la lecture des messages, de sorte que la file d'attente grossisse progressivement sans limite.
Selon la note de divulgation, la consommation mémoire pouvait augmenter jusqu'à 2MB par heure par pair entrant et 5MB par heure par pair sortant. Les nœuds exécutés avec -blocksonly étaient "much less affected", car les annonces de transactions représentaient l'essentiel des messages accumulés dans la file.
Un correctif diffusé dans plusieurs versions
La vulnérabilité est classée en sévérité Medium et jugée easily discoverable. Le problème a été découvert via un scan automatisé par LLM, dans le cadre du Project Loupe d'Elias Rohrer chez Spiral, puis validé et remonté à l'équipe Bitcoin Core par Gregory Sanders.
L'incident a aussi été redécouvert de manière indépendante par L0rinc. D'après le calendrier publié, Project Loupe a identifié le problème le 2026-09-15 et averti Greg Sanders le même jour, avant l'ouverture du PR #36667 par Antoine Poinsot le 2026-10-26. Ce correctif a ensuite été fusionné et rétroporté vers les versions 29, 30, 31 et 32.
Bitcoin Core 31.2 et 32.1 ont été publiées avec le correctif le 2026-10-27, puis 29.5 et 30.4 le 2026-10-28.

