Prosegue il dibattito sul TCP hole punching per rendere raggiungibili i nodi domestici dietro i router. Il numero tratta anche una bozza di BIP per standardizzare le politiche di spesa applicate dai co-firmatari nell'emulazione dei covenant.
Greg Sanders, Antoine Poinsot, Elias Rohrer, Oleksandr Kurbatov e Nishant Bansal affiancano i conduttori di Optech nel riepilogo della #429: si parte dalle #36665, #36667 e #36669 di Bitcoin Core per arrivare alla nuova politica di sicurezza. Più avanti spazio ai silent payment multiparty, a una vulnerabilità DoS di Core Lightning resa nota di recente e a Eclair 0.14.6; la trascrizione deve ancora arrivare.
Un annuncio di canale con lo stesso nodo a entrambi i capi poteva mandare in crash Core Lightning, dalla 25.02 alla 26.04, a ogni riavvio, e all'attaccante bastava pagare le commissioni onchain; la correzione è nella 26.04.1. La newsletter #429 accosta questa vulnerabilità al protocollo di Oleksandr Kurbatov per input multiparty nei silent payment e ai point release più rapidi di Bitcoin Core per i bug facili da scoprire.
Fingendo di non supportare i ping BIP 31, un peer malevolo poteva schivare la disconnessione dopo 20 minuti e leggere con lentezza, gonfiando la coda di invio del nodo fino a 2MB l'ora per ogni peer in entrata e 5MB per ognuno in uscita. La CVE-2026-117349, di gravità Media, è chiusa dalla #36667, presente nelle versioni 32.1, 31.2, 30.4 e 29.5 di Bitcoin Core; i nodi -blocksonly erano molto meno esposti.
In Bitcoin Core 29.5 poll() e select() monitorano allo stesso modo le eccezioni dei socket (#36665), e per i peer con invio in pausa scatta un timeout obbligatorio (#36667). Le posizioni dei flatfile diventano interi a 64 bit (#36669), i nodi presumono il supporto v2transport per gli indirizzi ricevuti dai seed e sparisce un DNS seed.
Un miner poteva spingere un file di undo di Bitcoin Core oltre i 4 GiB, mandando in overflow le posizioni a 32 bit e corrompendo i dati: se poi arriva la reorg giusta, i nodi si spengono. Windows e i sistemi a 32 bit cedono già a 2 GiB, senza bisogno di reorg. La CVE-2026-117346, di gravità Bassa, richiederebbe circa un mese di tutti i blocchi della rete. Le versioni 32.1, 31.2, 30.4 e 29.5 risolvono sui sistemi a 64 bit; restano esposti i nodi a 32 bit e chi tiene i blocchi su FAT32.
I nodi su Windows, macOS e BSD potevano finire in crash per colpa di un peer connesso che inviava dati TCP urgent: aggirando le letture in pausa nel backend select(), accumulavano memoria senza limite (CVE-2026-117350). Chi gira su Linux usa poll() e resta fuori dal problema. Il bug, di gravità Media e scovato da una scansione con LLM nell'ambito di Project Loupe, è corretto in Bitcoin Core 32.1, 31.2, 30.4 e 29.5.
Con Bitcoin Core 30.4 i bit BIP 9 da 5 a 28 non valgono più come segnali di soft fork, in linea con BIP 323: i blocchi che li attivano smettono di generare avvisi su deployment sconosciuti (#34779). Sul fronte rete arriva un timeout obbligatorio per i peer con invio in pausa (#36667), mentre le posizioni dei flatfile passano a interi a 64 bit (#36669).
Il private broadcast ha ora un tetto in Bitcoin Core 31.2: la coda delle transazioni che la rete non ha ancora rimandato indietro si ferma a 10.000 voci e, una volta piena, rifiuta i nuovi invii, lasciando al chiamante il compito di svuotarla con abortprivatebroadcast (#35406). I version bit da 5 a 28 non contano più come segnali di soft fork, come prevede BIP 323.
Il private broadcast di Bitcoin Core 32.1 non rischia più di rivelare l'IP del mittente: la fuga poteva verificarsi quando una connessione v2 fallita ritentava in v1 direttamente, senza passare da Tor. Il valore predefinito di -maxconnections sale da 125 a 200, e il limite al relay delle transazioni in uscita passa da un conteggio per peer a un backlog globale.