The Pulse
Bitcoin Core rende noti tre bug individuati da una scansione con IA
Bitcoin Core ha reso note tre vulnerabilità individuate tramite una scansione automatizzata e ha rilasciato le correzioni per quattro versioni ancora supportate. Gli avvisi descrivono rischi di esaurimento della memoria e un overflow nei fi

AI.info Team · Scritto con l’IA · verificato ·
«un peer malevolo può facilmente provocare il crash di qualsiasi nodo Windows, macOS o BSD a cui è connesso.»
Avviso di sicurezza di Bitcoin Core
Tre correzioni, quattro versioni
Il 28 ottobre Bitcoin Core ha reso note tre vulnerabilità, ciascuna individuata da una scansione automatizzata con un modello linguistico di grandi dimensioni attraverso Project Loupe di Spiral. Secondo gli avvisi, Gregory Sanders ha convalidato i risultati e li ha portati all’attenzione del team di sicurezza del progetto. Tutte e tre sono state classificate come «facilmente individuabili», una categoria che prevede la divulgazione una volta disponibili le correzioni per le versioni ancora supportate.
Le correzioni sono incluse nelle versioni 29.5, 30.4, 31.2 e 32.1 di Bitcoin Core. Le versioni 31.2 e 32.1 sono uscite il 27 ottobre; le versioni 29.5 e 30.4 sono seguite il 28 ottobre. Le note di rilascio della versione 32.1 di Bitcoin Core indicano che la versione 29.x e quelle precedenti hanno ora raggiunto la fine del loro ciclo di vita e non riceveranno quindi più aggiornamenti.
I dati urgenti TCP potevano esaurire la memoria
Il problema descritto nella citazione iniziale riguarda i nodi su Windows, macOS e BSD, ma non quelli su Linux. Bitcoin Core usa un backend di monitoraggio dei socket basato su select() sulle piattaforme diverse da Linux e su poll() su Linux. Nel percorso interessato, un peer poteva inviare dati urgenti TCP per attivare operazioni di lettura anche dopo che Bitcoin Core le aveva sospese per limitare i dati in coda.
Aggirando questo limite, un peer malevolo poteva continuare ad aggiungere dati senza limiti alla coda di elaborazione del nodo, con il rischio di esaurire la memoria e provocarne il crash. Project Loupe ha individuato la falla il 23 ottobre e il 26 ottobre Antoine Poinsot, collaboratore di Bitcoin Core, ha proposto una correzione. Il progetto afferma che la correzione è stata integrata e applicata retroattivamente alle versioni 29, 30, 31 e 32 prima della loro pubblicazione.
Una seconda falla permetteva alle code dei peer di crescere
Un altro bug, di gravità media, riguardava i peer che non supportano i messaggi ping BIP 31 con nonce. Normalmente Bitcoin Core disconnette i peer che non rispondono a un ping entro 20 minuti, ma questo controllo non si applica ai peer privi della funzionalità del vecchio protocollo. Un peer malevolo poteva dichiarare di non supportarla, leggere lentamente i messaggi e lasciare che la coda in uscita del nodo continuasse a crescere.
L’avviso stima una crescita della memoria fino a 2 megabyte all’ora per ogni peer in ingresso e 5 megabyte all’ora per ogni peer in uscita. Project Loupe ha segnalato il problema il 15 settembre; lo sviluppatore L0rinc lo ha segnalato indipendentemente sei giorni dopo. I nodi eseguiti con l’opzione -blocksonly sono molto meno colpiti, perché gli annunci di transazioni rappresentano la maggior parte dei messaggi in coda.
Un bug nei file di undo interessa ancora alcuni sistemi
La terza falla, valutata di gravità bassa, riguardava i dati di undo che Bitcoin Core memorizza per annullare i blocchi durante una riorganizzazione della catena. Sui sistemi a 64 bit, un miner potrebbe in teoria portare un file di undo oltre i 4 GiB, causando un overflow delle posizioni memorizzate come interi a 32 bit. L’avviso definisce impraticabile lo sfruttamento della falla: richiederebbe diverse migliaia di blocchi di transazioni non standard, circa un mese di produzione di blocchi della rete, e un controllo preciso su una successiva riorganizzazione.
La correzione modifica le posizioni dei file memorizzate, usando interi a 64 bit. Ma Bitcoin Core afferma che i sistemi a 32 bit restano vulnerabili perché le loro chiamate per il posizionamento nei file sono limitate a 2 GiB; anche i nodi che memorizzano i dati dei blocchi su FAT32 restano esposti, perché il file system limita i file a 4 GiB. In entrambi i casi il nodo può arrestarsi e il riavvio non risolve il problema.
Perché Bitcoin Core ha divulgato rapidamente i bug
La politica di sicurezza di Bitcoin Core prevede che per i bug individuabili con uno sforzo minimo, anche attraverso un semplice prompt per un LLM, vengano pubblicati un aggiornamento di versione e un avviso il prima possibile, senza i consueti periodi di attesa basati sulla gravità. Altrimenti, il calendario standard rinvia la divulgazione delle falle di gravità media e alta a due settimane dopo la fine del ciclo di vita dell’ultima versione interessata. Le note di rilascio della versione 32.1 del progetto segnalano inoltre altre tre vulnerabilità di gravità media e alta corrette nella versione 30.0, la cui divulgazione è prevista tra due settimane secondo il calendario ordinario.
I tre avvisi mostrano l’effetto pratico della politica: le correzioni sono state applicate a quattro rami di rilascio prima che i dettagli fossero resi pubblici il 28 ottobre. L’avviso sui file di undo delimita anche chiaramente questa protezione: i nodi a 64 bit aggiornati sono corretti, ma i sistemi a 32 bit e quelli che utilizzano FAT32 per l’archiviazione no.