Martedì 10 novembre Bitcoin Core ha reso noti i dettagli di tre vulnerabilità corrette nel 2025. Una è classificata ad alta gravità, perché poteva impedire a un nodo di mining di produrre blocchi dopo una riorganizzazione della chain. La divulgazione è arrivata due settimane dopo che l'ultima versione interessata, la 29.x, ha raggiunto la fine del supporto, il 27 ottobre 2026.
Le tre vulnerabilità
Gli advisory sono stati aggiunti al sito ufficiale tramite una pull request su GitHub aperta da darosior e unita da fanquake lo stesso giorno. Secondo la descrizione della PR, i bug erano stati preannunciati due settimane prima, insieme al rilascio della 32.1.
- CVE-2025-62859 - l'elaborazione dei blocchi poteva essere bloccata da un peer che annunciava un compact block con un witness malleato
- CVE-2025-62860 - le connessioni Tor in entrata ricevevano per errore i permessi -whitelist, eliminando le protezioni contro DoS e per la privacy
- CVE-2025-62861 - la creazione dei block template si bloccava per l'espulsione dei sibling TRUC (v3) durante un reorg
Nell'advisory pubblicato, CVE-2025-62861 è classificata come ad alta gravità.
Come funzionava il bug ad alta gravità
Le transazioni TRUC (versione 3, definite nel BIP 431) possono avere al massimo un antenato non confermato e un discendente non confermato nella mempool. Quando una nuova transazione darebbe a un parent TRUC un secondo figlio non confermato, la logica di sibling eviction introdotta nella v28.0 espelle il figlio esistente secondo le regole del replace-by-fee, se la nuova transazione paga abbastanza.
Si tratta di regole di policy della mempool, non di consenso, quindi un blocco valido può contenere qualsiasi topologia. Durante un reorg, le transazioni dei blocchi scollegati vengono reinserite nella mempool con bypass_limits=true, ma il controllo TRUC non dipendeva da quel flag e veniva comunque eseguito.
Il risultato: una transazione ripristinata poteva essere espulsa mentre i suoi discendenti restavano nella mempool, spendendo output che non esistevano più. Il block template assemblato dal miner falliva quindi il controllo di validità e il nodo non riusciva a produrre blocchi finché un riavvio non ricaricava la mempool in uno stato coerente.
Chi era coinvolto e quando è arrivato il fix
La correzione è nella PR #33504, aperta da Greg Sanders, che subordina i controlli TRUC a bypass_limits. Il bug è stato scoperto e segnalato in modo responsabile da Niklas Goegge.
Data | Evento |
|---|---|
26 set 2025 | Niklas Goegge segnala il bug alla mailing list di sicurezza |
2 ott 2025 | La PR #33504 viene unita al master |
10 ott 2025 | Rilascio di Bitcoin Core 30.0 con la correzione |
14 ott 2025 | Rilascio di Bitcoin Core 29.2 con la correzione |
17 ott 2025 | Rilascio di Bitcoin Core 28.3 con la correzione |
27 ott 2026 | L'ultima versione vulnerabile (29.x) raggiunge la fine del supporto |
10 nov 2026 | Divulgazione pubblica |
La policy di divulgazione
In base alla policy di sicurezza di Bitcoin Core, le vulnerabilità di gravità media e alta vengono divulgate due settimane dopo la fine del supporto dell'ultima versione interessata, circa un anno dopo il primo rilascio della versione major che contiene la correzione.
Un preannuncio esce due settimane prima, in coincidenza con una nuova release major, e indica il numero di vulnerabilità corrette e il relativo livello di gravità. Se usi ancora un nodo con le versioni 28.0-28.2 o 29.0-29.1, sei coinvolto; le ultime release di manutenzione, 29.5 e 30.4, sono uscite il 28 ottobre 2026.
