Un bug dans le moteur de paiement du XRP Ledger permettait à un paiement de créer de nouveaux XRP à partir de rien. Il est resté dans le code pendant près d’une décennie, et le correctif a été déployé avant que quiconque puisse le lire.

Le moteur additionnait ce que devait un acheteur pour plusieurs offres à l’aide d’un simple compteur de 64 bits. Quelques centaines d’offres conçues à cet effet, chacune demandant une quantité énorme de XRP, faisaient dépasser la limite au total, qui retombait alors à presque zéro. Les vendeurs étaient payés intégralement, l’acheteur ne payait presque rien, et la vérification « aucun XRP créé » utilisait le même compteur : elle ne détectait donc rien.

Selon nos calculs, ce compteur plafonne à environ 9 200 milliards de XRP, soit près de 92 fois l’offre totale de 100 milliards. Aucun compte ne peut détenir plus que l’offre totale, l’attaque nécessitait donc au moins 93 comptes destinataires.

Cayden Liao et Veria AI ont signalé le problème via le programme de primes aux bugs XRPL le 22 septembre. xrpld 3.4.1 est sorti le 25 septembre, mais son code source n’était pas encore disponible ; ce jour-là, plus de 80 % des validateurs de l’UNL par défaut l’exécutaient. La mise à jour a contourné le vote sur l’amendement, une première pour un correctif touchant au traitement des transactions depuis plus de dix ans. RippleX n’a trouvé aucun signe indiquant que le bug ait jamais été exploité sur un réseau public.

Près de dix ans dans le code. Trois jours pour corriger le problème.

$XRP
#XRP #CryptoSecurity
NFA. DYOR.