Plus de 9 millions de dollars ont quitté la pool de liquidité du réseau XPR en seulement 11 minutes. La cause était un smart contract de swap qui autorisait des « valeurs négatives (moins) » dans les demandes de retrait, et l’attaquant a exploité cette faille avec acharnement.

Point clé

  • L’attaquant a retiré plus de 9 millions de dollars de la pool de liquidité du réseau XPR pendant environ 11 minutes.

  • Grâce à une faille où la fonction de retrait accepte des valeurs négatives, l’attaquant a pu gonfler le solde interne avant d’extraire de véritables jetons.

  • Les producteurs de blocs ont modifié le contrat et gelé environ 1,8 milliard XPR, parvenant ainsi à immobiliser sur la chaîne la majeure partie des fonds volés.

Attaque en échange XPR exploitant la faille de « retrait négatif »

La cible de l’attaque était le contrat d’échange on-chain du réseau, proton.swaps. Dans ce contrat, l’attaquant a retiré environ 1,56 milliard XPR (soit environ 4,03 millions de dollars à l’époque).

Le cœur du problème est que la fonction de retrait autorisait les valeurs négatives.
L’attaquant en a profité pour gonfler artificiellement le « solde virtuel » à l’intérieur du contrat, puis a répété le processus consistant à retirer les tokens réels en conséquence.
Ce processus a traversé plusieurs pools partageant la même liquidité, tels que le pool de stablecoins, le pool d’actifs de pont (bridge) et le pool de prêts (lending), et le montant total des pertes cumulées a dépassé 9 millions de dollars.

Ensuite, environ 563,00 millions XPR (l’équivalent d’environ 1,46 million de dollars) ont été transférés vers le protocole de prêt.
L’attaquant a déclenché des prêts supplémentaires en utilisant les stablecoins volés comme garantie, si bien que les tokens impliqués directement ou indirectement dans l’attaque ont atteint au total 2,12 milliards XPR (environ 6,5 % de l’offre en circulation).
Puis, environ 764,00 millions XPR (environ 2 millions de dollars) ont été transférés vers un second compte.

À lire également : ETF XRP, entrée de capitaux record de 1,7 milliard de dollars sur 9 semaines consécutives de flux nets entrants

Prix de XPR après la rupture de la ligne de support

Les sorties on-chain ont également été reflétées sur le prix du marché en l’espace de quelques heures.
Le prix de XPR, entraîné par une tendance baissière le dimanche, a chuté jusqu’à environ 0,00245 dollar à un moment donné, et s’échangeait autour de 0,0026 dollar, soit une baisse d’environ 5,6 % sur 24 heures.
Le prix est descendu sous le seuil de 0,00271 dollar, qui servait de support important, et n’a pas réussi à se rétablir tout au long de la séance.
Le prix, qui avait atteint brièvement 0,00277 dollar au début de la même séance, est redescendu à un niveau correspondant à une capitalisation boursière d’environ 74 millions de dollars.

L’RSI est tombé jusqu’à 27,47, entrant ainsi dans une zone de survente profonde.
Cela suggère une vente à sens unique, davantage qu’une réévaluation progressive des prix.
Le volume des transactions, d’environ 2,9 millions de dollars par jour, montre aussi qu’il n’y avait pas assez de liquidité acheteuse pendant la phase de baisse.

Si l’on considère uniquement l’ampleur absolue des dommages, cette affaire est relativement petite par rapport aux grandes attaques de piratage DeFi de cette année.
Cependant, le fait que les dommages se soient propagés en chaîne vers plusieurs protocoles partageant la même liquidité (par exemple les pools de prêts et d’actifs de pont) n’est considéré comme un signal d’alerte encore plus fort que parce qu’une seule validation de la valeur d’entrée d’un contrat d’échange (swap) aurait été omise.
L’attaquant n’avait besoin ni de flash loan, ni de manipulation d’oracle.
Il suffisait d’un seul « signe négatif » que le contrat n’a pas su filtrer.

Metallicus, gel des XPR volés

Après avoir appliqué le correctif au contrat en question à 21 h 32 (heure UTC), les producteurs de blocs ont gelé environ 1,8 milliard XPR vers minuit, puis les ont transférés vers une adresse de portefeuille de gestion communautaire.
Parmi les 2,12 milliards XPR exposés directement à l’attaque, la quantité réellement sortie hors du réseau n’a été que de 319,50 millions XPR.

Grâce à cela, une grande partie des quantités endommagées est restée sous forme d’« actifs récupérables ».
C’est possible car le réseau XPR a adopté une structure de preuve d’enjeu déléguée (Delegated Proof-of-Stake, DPoS), ce qui permet à un petit nombre de producteurs de blocs élus d’intervenir directement dans l’état de la chaîne.
Le réseau XPR a déjà eu recours par le passé à ce « levier d’urgence ».

La société de développement clé du réseau XPR, Metallicus, a déjà rendu public en septembre 2024 que sa mise en garde « re-entrancy » avait été exploitée au sein de son contrat de prêt (lending).
À l’époque, Metallicus a interrompu immédiatement les opérations de dépôt, de prêt et de liquidation, puis a gelé les fonds concernés avant de reprendre progressivement le service de prêt le mois suivant.

Lecture suivante : Sam Altman écarte la possibilité d’une introduction en bourse (IPO) d’OpenAI en 2026… « La réglementation de la sécurité de l’IA constitue un obstacle »