Incident de sécurité sur les contrats de carte Rain
Le 28 août, un attaquant a exploité un contrat de carte Rain obsolète, siphonnant environ 1,1 million de dollars de plusieurs programmes de cartes en stablecoin opérant sur Solana, selon la société de sécurité blockchain Blockaid. Parmi les néobanques crypto touchées, on retrouve Avici et Tria, qui ont signalé des pertes combinées de plus de 932 800 dollars sur 2 321 utilisateurs.
Blockaid a également indiqué que d’autres programmes soutenus par Rain étaient exposés, portant la perte totale estimée à environ 1,1 million de dollars. L’attaquant n’a pas eu accès aux portefeuilles auto-gérés des clients ni à leurs clés privées. Au lieu de cela, l’exploitation a ciblé des contrats de garantie détenant des stablecoins que les utilisateurs avaient déposés pour financer leurs soldes de cartes.
Vulnérabilités et conséquences
Rain a déclaré que ses systèmes de surveillance avaient détecté une vulnérabilité affectant un « petit nombre de programmes » utilisant une version obsolète de son contrat de carte Solana. La société a mis à jour chaque programme encore en cours d’exécution avec la version affectée, selon sa déclaration publique.
L’incident soulève des préoccupations plus larges concernant les vulnérabilités des contrats et des opérations. Les échecs de sécurité dans le secteur des cryptomonnaies ont causé environ 1,1 milliard de dollars de pertes au cours du premier semestre 2026, selon des recherches publiées par Blockaid.
« Lorsque les clients financent leurs cartes, les actifs déposés sont transférés dans des comptes de garantie gérés par des contrats on-chain. Ces soldes sont séparés des actifs détenus dans les portefeuilles personnels des clients. »
Une fois que les fonds sont dans un contrat de garantie de carte, leur sécurité dépend du code et des contrôles d’autorisation du fournisseur d’infrastructure. Blockaid a identifié quatre déploiements contenant du code avec le même hachage d’opcode que le contrat vulnérable. La société de sécurité a déclaré que l’attaquant avait siphonné des fonds d’au moins deux déploiements.
Analyse de l’attaque
Le contrat Rain obsolète nécessitait deux autorisations indépendantes avant de permettre certaines actions de compte, utilisant les instructions de vérification Ed25519 de Solana pour confirmer les signatures requises. Selon l’analyse de Blockaid, l’attaquant a manipulé la deuxième instruction de vérification.
Après avoir contourné la vérification de signature, l’attaquant a utilisé une instruction AddCollateralAdmin pour se donner des privilèges administratifs sur des comptes individuels, puis a appelé WithdrawCollateralAsset pour transférer des USDC et des USDT de ces comptes. Blockaid a enregistré 2 945 ajouts d’administrateurs et 5 288 appels de retrait, identifiant 8 233 transactions d’exploitation principales sur une période d’environ deux heures et 29 minutes.
Les clients n’ont pas autorisé les transactions malveillantes, l’exploitation se produisant au niveau du contrat, ce qui signifie que les protections contre le phishing ou les signatures de portefeuille malveillantes n’auraient pas empêché ces retraits.
Blanchiment des fonds volés
Les USDC et USDT retirés se sont accumulés dans un portefeuille Solana identifié comme FVNFzqAny8spWdPmYw6RQ9TkYa29ueFFiqCFD1gQnCEj. L’attaquant a échangé les stablecoins contre des SOL via des plateformes de trading décentralisées. Blockaid a ensuite retracé les produits de Solana à Ethereum via le protocole cross-chain de deBridge.
Environ 455,9 ETH ont été transférés dans Tornado Cash, rendant ainsi les mouvements ultérieurs plus difficiles à tracer à travers les enregistrements de blockchain publics. Blockaid a déclaré que les fonds volés n’avaient pas été récupérés après leur entrée dans Tornado Cash.
Réactions et remboursements
Avici a rapporté que l’attaquant avait retiré 500 859,22 dollars des soldes de cartes appartenant à 1 685 utilisateurs. La société a déclaré avoir remboursé tous les clients affectés et fourni un cashback de 10 % après l’incident. Tria a divulgué environ 431 945 dollars de pertes sur 636 clients, précisant dans une mise à jour officielle que chaque client affecté était en cours de remboursement.
Les deux divulgations représentent 932 804,22 dollars des pertes estimées. La différence entre les pertes divulguées d’Avici et de Tria et l’estimation de 1,1 million de dollars de Blockaid semble impliquer d’autres programmes soutenus par Rain.
Questions en suspens
Plusieurs questions demeurent sans réponse. Rain n’a pas publié l’historique complet de la version du contrat vulnérable, la date à laquelle la faille a été introduite ou la raison pour laquelle les anciens déploiements sont restés actifs. La société n’a pas non plus divulgué si un audit avait identifié la faille d’autorisation avant l’attaque.
Cet épisode soulève des questions sur l’efficacité des audits périodiques pour protéger les contrats une fois en production. Des recherches récentes dans l’industrie ont révélé que les institutions souhaitent de plus en plus une surveillance continue en plus des audits de sécurité traditionnels, en particulier pour les contrats détenant des actifs des utilisateurs.