NotizieCryptoXRP Ledger corregge un bug decennale nel motore di pagamento che avrebbe potuto coniare XRP contraffatti

XRP Ledger corregge un bug decennale nel motore di pagamento che avrebbe potuto coniare XRP contraffatti

Autore: Decrypt·

Punti chiave

  • •Un overflow di interi nel motore di pagamento dell'XRP Ledger, presente dalla stesura del codice nel 2015, avrebbe potuto permettere a un attaccante di creare XRP spendibili superiori all'offerta totale del token in una singola transazione.
  • •Il bug, segnalato da un ricercatore a settembre tramite il programma di bug bounty di XRPL, si manifestava solo quando un singolo pagamento consumava centinaia di offerte appositamente create sul order book, facendo ripartire l'importo dovuto fino a un valore trascurabile mentre i venditori erano pagati per intero.
  • •Il controllo di sicurezza integrato del ledger, progettato per garantire che nessuna transazione coniasse XRP, si basava sulla stessa aritmetica difettosa ed è fallito silenziosamente insieme al codice vulnerabile.
  • •La patch è stata rilasciata nella versione 3.4.1 il 25 settembre ed è stata adottata da oltre l'80% dei validator fidati quello stesso giorno, segnando la prima volta che una modifica all'elaborazione delle transazioni ha deliberatamente bypassato il processo di voto sugli emendamenti di due settimane del ledger.
  • •I manutentori non hanno trovato evidenze che la vulnerabilità sia mai stata sfruttata, e la divulgazione riecheggia un precedente allarme contraffazione legato a un bug di soundness nello shielded pool di Zcash.
XRP Ledger corregge un bug decennale nel motore di pagamento che avrebbe potuto coniare XRP contraffatti

Gli sviluppatori alla base dell'XRP Ledger hanno divulgato e corretto una vulnerabilità critica che, se non affrontata, avrebbe potuto permettere a un attaccante di generare XRP dal nulla, una falla rimasta dormiente nel codice della rete per circa un decennio.

In una divulgazione pubblicata venerdì, i manutentori del ledger hanno dichiarato che un ricercatore ha segnalato il bug a settembre tramite il programma di bug bounty di XRPL. Il problema era un overflow di interi nel motore di pagamento, il componente del software responsabile dell'elaborazione dei pagamenti.

L'errore aritmetico si manifestava solo in condizioni insolite. Quando un singolo pagamento consumava centinaia di offerte appositamente costruite dal order book, la somma di quanto dovuto dall'acquirente superava il valore massimo che il sistema poteva memorizzare e "ripartiva" fino a un numero minuscolo. Il motore pagava ogni venditore per intero ma addebitava all'acquirente quasi nulla, con la differenza che equivaleva a XRP appena coniati che non sarebbero mai dovuti esistere.

Ad aggravare il problema, il controllo di sicurezza integrato del ledger, progettato per confermare che nessuna transazione crei XRP, si basava sulla stessa aritmetica difettosa. Ripartiva allo stesso modo e non rilevava nulla. Secondo i manutentori, un attaccante avrebbe potuto creare XRP spendibili ben oltre l'offerta totale del token in una singola transazione, per poi spostarli, scambiarli o inviarli agli exchange. Quel controllo è il meccanismo su cui il ledger fa affidamento per garantire che nessuna transazione possa coniare nuovo XRP, ed è fallito silenziosamente insieme allo stesso codice che era destinato a sorvegliare.

Gli ingegneri di RippleX hanno confermato che il bug era presente dalla stesura dell'attuale motore di pagamento nel 2015. È rimasto inosservato perché nessun pagamento ordinario si avvicina anche solo lontanamente a innescare l'overflow, e non ci sono evidenze che sia mai stato sfruttato, ha dichiarato il team.

La correzione è stata rilasciata nella versione 3.4.1 il 25 settembre, e oltre l'80% dei validator fidati della rete la eseguiva quello stesso giorno. In modo significativo, la patch ha bypassato il consueto processo di emendamento del ledger, che richiede ai validatori di votare e attendere due settimane prima che una modifica entri in vigore. È stata la prima volta che una modifica all'elaborazione delle transazioni è stata distribuita deliberatamente in questo modo da il sistema è stato introdotto più di un decennio fa. I manutentori hanno affermato che la gravità giustificava la deroga, poiché la pubblicazione della correzione open source avrebbe rivelato il bug lasciandolo sfruttabile per settimane. Con la falla ora pubblica, qualsiasi validatore ancora su una versione precedente ha sia il motivo che il rimedio a portata di mano: l'aggiornamento alla 3.4.1 rimuove l'aritmetica difettosa dall'elaborazione dei pagamenti di quel nodo.

La divulgazione riecheggia un allarme contraffazione che ha scosso Zcash all'inizio di quest'anno, quando la privacy coin si è affrettata a correggere un bug di soundness nel suo shielded pool che avrebbe potuto consentire monete contraffate. Quell'episodio ha fatto precipitare ZEC prima che l'aggiornamento Ironwood della rete lo risolvesse. Entrambi gli incidenti miravano alla stessa classe di garanzia: che l'asset di una blockchain non possa essere fabbricato dal nulla, per quanto abilmente costruita sia una transazione.

XRP non è uscito indenne dalla settimana. Il token è scambiato a 1,38 dollari lunedì, in calo dell'1,6% in 24 ore, la performance peggiore tra le principali criptovalute, e in calo del 9,4% negli ultimi sette giorni.