Les échanges se poursuivent sur le TCP hole punching pour rendre joignables les nœuds domestiques derrière des routeurs. Le numéro présente aussi un projet de BIP visant à standardiser les politiques de dépense appliquées par les co-signataires pour émuler des covenants.
Greg Sanders, Antoine Poinsot, Elias Rohrer, Oleksandr Kurbatov et Nishant Bansal rejoignent les animateurs d’Optech pour revenir sur le numéro #429. L’émission s’ouvre sur Bitcoin Core #36665, #36667 et #36669, puis aborde la politique de sécurité mise à jour. Viennent ensuite les paiements silencieux multipartites, une faille DoS de Core Lightning rendue publique et Eclair 0.14.6 ; la transcription se fait encore attendre.
Il suffisait d’une annonce de canal désignant le même nœud aux deux extrémités pour faire planter Core Lightning, de 25.02 à 26.04, à chaque redémarrage, le tout pour le seul prix de frais on-chain ; le correctif est arrivé avec 26.04.1. La newsletter #429 présente aussi le protocole d’Oleksandr Kurbatov pour des entrées multipartites en paiements silencieux, ainsi que les versions correctives accélérées de Bitcoin Core face aux bugs faciles à découvrir.
En faisant mine de ne pas gérer les pings de BIP 31, un pair malveillant pouvait esquiver la déconnexion au bout de 20 minutes et lire au ralenti : la file d’envoi du nœud gonflait alors de 2 Mo par heure au maximum pour chaque pair entrant, et de 5 Mo pour chaque pair sortant. La faille CVE-2026-117349, de gravité moyenne, est corrigée par #36667 dans Bitcoin Core 32.1, 31.2, 30.4 et 29.5 ; les nœuds en -blocksonly étaient bien moins exposés.
Plus d’écart entre poll() et select() pour la surveillance des exceptions de socket dans Bitcoin Core 29.5 (#36665), et les pairs en pause d’envoi se voient imposer un délai d’expiration (#36667). Les positions des flatfiles passent en entiers 64 bits (#36669), les nœuds présument v2transport pour les adresses issues des seeds, et un seed DNS disparaît.
Un mineur pouvait faire dépasser 4 Gio à un fichier d’annulation (undo) de Bitcoin Core : ses positions sur 32 bits repartaient alors de zéro et corrompaient les données, de sorte que les nœuds s’arrêtent si une réorganisation bien placée s’ensuit ; sous Windows et sur les systèmes 32 bits, l’échec survient dès 2 Gio, sans réorganisation. De faible gravité, CVE-2026-117346 exigerait environ un mois de la totalité des blocs du réseau. Les versions 32.1, 31.2, 30.4 et 29.5 corrigent les systèmes 64 bits ; les nœuds 32 bits et le stockage des blocs sur FAT32 restent concernés.
Sous Windows, macOS et BSD, un pair connecté pouvait faire tomber un nœud en lui envoyant des données urgentes TCP : elles échappaient aux lectures en pause du backend select() et la mémoire s’accumulait sans limite (CVE-2026-117350). Les nœuds Linux, qui utilisent poll(), ne sont pas concernés. Bitcoin Core 32.1, 31.2, 30.4 et 29.5 corrigent ce bug de gravité moyenne, repéré par un LLM lors d’une analyse menée dans le cadre de Project Loupe.
Bitcoin Core 30.4 cesse de considérer les bits 5 à 28 de BIP 9 comme des signaux de soft fork, conformément à BIP 323 : les blocs qui les activent ne déclenchent plus d’alertes de déploiement inconnu (#34779). Côté réseau, un délai d’expiration s’applique désormais aux pairs en pause d’envoi (#36667), et les positions des flatfiles passent en entiers 64 bits (#36669).
La diffusion privée a désormais un plafond dans Bitcoin Core 31.2 : la file des transactions que le réseau n’a pas encore renvoyées s’arrête à 10 000 entrées et refuse tout nouvel envoi une fois pleine, à charge pour l’appelant de la vider avec abortprivatebroadcast (#35406). Conformément à BIP 323, les bits de version 5 à 28 ne comptent plus comme signaux de soft fork.
Plus de risque de voir l’adresse IP de l’expéditeur exposée par la diffusion privée dans Bitcoin Core 32.1 : la fuite pouvait survenir quand une connexion v2 ratée était retentée en v1 directement, et non via Tor. La valeur par défaut de -maxconnections passe de 125 à 200, et le débit du relais sortant des transactions est limité par une file globale plutôt que pair par pair.