Bug di gravità “high” nel software Bitcoin rivelato 2 anni dopo la correzione

Bug di gravità "high" nel software Bitcoin rivelato 2 anni dopo la correzione - Bitcoin Core bugUn importante bug nel software Bitcoin Core, da non confondere con Bitcoin System, avrebbe potuto consentire agli aggressori di rubare fondi, ritardare gli accordi o dividere la più grande rete blockchain in versioni contrastanti se non fosse stato corretto segretamente due anni fa.

Il bug nel codice

Un articolo pubblicato mercoledì da Braydon Fuller, un ingegnere di protocollo presso il sito di crypto shopping Purse, e Javed Khan, uno sviluppatore senior del protocollo Handshake, afferma che essi hanno rilevato la vulnerabilità nel giugno 2018.

Al bug è stato assegnato un livello di gravità di 7,8 su una scala da 1 a 10, che è considerato “high” (da 9 in su è considerato “critical”). Il problema è stato causato da “nodi remoti” che non sono riusciti a cancellare le transazioni non valide dalla loro memoria, ha detto Khan.

L’incapacità di cancellare tali transazioni potrebbe portare ad un attacco che carica il nodo vittima con dati obsoleti in quello che viene definito “consumo incontrollato di risorse”, causando alla fine la chiusura del nodo stesso, afferma il documento.

Le soluzioni Layer 2 (L2) come Lightning Network, il sistema di pagamento sperimentale costruito sulla blockchain di Bitcoin, erano a rischio a causa di tale bug. I nodi completi di Bitcoin, invece, non hanno rischiato di perdere fondi.

Non è stato rivelato nessun tentativo di sfruttare il problema, hanno scritto Khan e Fuller. La vulnerabilità non è stata rivelata pubblicamente per oltre due anni poiché gli operatori dei nodi hanno impiegato più tempo del previsto per l’aggiornamento, ha affermato Fuller.

Sebbene il bug sia stato risolto, la sua divulgazione evidenzia le difficoltà di costruire uno standard monetario globale su linguaggi di programmazione creati dagli esseri umani, per non parlare delle elevate barriere tecniche nello sviluppo della più grossa criptovaluta al mondo.

Il problema nel codice è stato inserito in Bitcoin Core nel novembre 2017. Circa il 50% dei nodi Bitcoin all’epoca erano potenzialmente esposti ad un attacco, secondo il documento. Le versioni precedenti di Bitcoin Core non hanno registrato questo tipo di problema.

Non solo Bitcoin Core

Khan ha affermato che la vulnerabilità avrebbe potuto consentire a un utente malintenzionato di rubare fondi da nodi che avevano canali aperti su Lightning. Le versioni di Bitcoin Core 0.16.0 e 0.16.1 sono state analizzate e corrette dallo sviluppatore Matt Corallo in seguito alla divulgazione di Fuller al Core team nel luglio 2018.

Bitcoin Core è l’implementazione di riferimento, o versione standard, del software di rete da cui ne derivano molti altri. Secondo il documento, il bug avrebbe potuto coinvolgere anche diverse altre implementazioni di Bitcoin e dei suoi derivati:

  • Bitcoin Knots v0.16.0
  • Tutte le versioni beta di Bcoin fino alla v1.0.0-pre
  • Tutte le versioni di Btcd fino alla v0.20.1-beta
  • Litecoin Core v0.16.0
  • Namecoin Core v0.16.1
  • Tutte le versioni di Dcrd fino alla v1.5.1.

Tutte queste implementazioni sono state patchate.