Une faille de Radix Engine a permis à un attaquant de retirer environ 1,26 million de dollars en 26 transactions le 31 août, dont 458 915 USDC, 72 420 USDT, 61,08 ETH, 6,35 Bitcoin enveloppés, 536,16 SOL et 32,91 BNB. L'attaquant a également pris 13 000 XRD pour payer les frais de transaction. Les validateurs ont ensuite interrompu la blockchain Radix pendant plus de 10 jours, après que les enquêteurs ont établi que le défaut pouvait affecter n'importe quel coffre, et pas seulement les comptes visés par l'exploit.
Pourquoi c'est important
RDX Works a introduit le défaut lors d'un nettoyage de Radix Engine en juin 2023. Cette couche d'exécution est chargée de traiter les transactions et de faire respecter la propriété des actifs. Le bug a modifié la manière dont le moteur gérait les références aux coffres, permettant à du code de smart contract conçu à cette fin de transmettre le coffre d'un autre utilisateur à des fonctions ordinaires de retrait sans vérifier correctement les limites de propriété.
Il s'agissait donc d'une défaillance au niveau du protocole, et non d'un problème limité à une application. L'attaquant a transféré les actifs volés via Hyperlane vers Ethereum, BNB Chain et Solana, puis les a vendus contre de l'ETH. Hyperlane a fonctionné comme prévu, car les actifs avaient déjà été retirés de Radix avant l'utilisation du bridge.
Impact sur le marché
Le vol direct sous-estimait l'exposition potentielle. Les enquêteurs de Radix ont conclu que les comptes utilisateurs, les applications et les pools de liquidité auraient pu être vulnérables. Des pertes secondaires ont suivi lorsque des actifs transférés par bridge ont été retirés de pools de liquidité, faussant les prix et permettant à un autre compte d'extraire plusieurs millions de XRD.
La faille avait également résisté à l'audit indépendant du protocole Radix réalisé par Zellic en 2024, qui couvrait notamment le noyau du moteur contenant le défaut. Les validateurs ont mis hors ligne une quantité suffisante de stake pour bloquer le consensus, tandis que les développeurs ajoutaient des contrôles contre les références non autorisées à des coffres. Les transactions des utilisateurs ont repris le 11 septembre. Radix a indiqué ajouter des tests de régression, renforcer les revues de sécurité et formaliser le processus d'urgence utilisé pour rétablir la sécurité du réseau.
Questions fréquemment posées
-
Quel montant l'exploit de Radix a-t-il retiré des coffres ciblés ?
L'attaquant a retiré des actifs d'une valeur d'environ 1,26 million de dollars en 26 transactions, ainsi que 13 000 XRD utilisés pour payer les frais de transaction.
-
Quelle est la cause de la défaillance d'autorisation de Radix Engine ?
Une refonte réalisée en juin 2023 a modifié la manière dont le moteur gérait les références aux coffres. Du code de smart contract pouvait transmettre le coffre d'un autre utilisateur à des fonctions de retrait sans vérification correcte de la propriété.
-
Pourquoi les validateurs de Radix ont-ils interrompu la blockchain ?
Les enquêteurs ont établi que la faille pouvait affecter n'importe quel coffre du réseau. Les validateurs ont mis hors ligne suffisamment de stake pour arrêter le consensus et empêcher de nouvelles transactions pendant que les développeurs préparaient un correctif.
-
L'attaquant a-t-il compromis les clés privées des utilisateurs ?
Non. Les actifs ont été retirés en exploitant la faille d'autorisation de Radix Engine, et aucune clé privée n'a été compromise.
-
Quels dommages secondaires ont suivi le vol initial sur Radix ?
Le retrait d'actifs transférés par bridge des pools de liquidité a faussé les prix et permis à un autre compte d'extraire plusieurs millions de XRD des pools concernés.