Une faille exploitée chez Splash vide le pool Cardano ADA/OADA
Splash affirme qu une faille dans son validateur StableSwap a permis à un attaquant de retirer environ 2.43 million d ADA et 1.99 million d OADA. Optim Finance a mis son protocole en pause après la disparition de la liquidité OADA.
By SongMarketCap
Updated:
Splash Protocol a publié un rapport technique expliquant comment un attaquant a vidé le pool StableSwap ADA/OADA le 13 septembre.
Optim Finance a ensuite mis son protocole en pause, retiré la liquidité restante sous son contrôle et averti les utilisateurs qu OADA ne pouvait plus être échangé contre ADA par sa voie habituelle.
Splash a indiqué qu aucun autre type de pool n avait été affecté. L incident s est produit au sein de l infrastructure de contrats intelligents au niveau applicatif et n a pas compromis le réseau Cardano lui même.
Comment le validateur StableSwap a été exploité
La vulnérabilité se trouvait dans le validateur stableFnPoolT2t de Splash, qui alimentait le pool StableSwap ADA/OADA à deux actifs.
Le validateur calculait les réserves échangeables en soustrayant les frais de protocole accumulés du solde total du pool. Cependant, il ne vérifiait pas que les réserves résultantes demeuraient positives. Il manquait aussi une limite supérieure suffisante aux augmentations des frais de protocole et il n imposait pas la direction d échange attendue, où un actif entre dans le pool tandis qu un autre en sort.
L attaquant a exploité ces contrôles manquants au cours de deux transactions.
Lors de la première transaction, exécutée à 00:47:36 UTC, l attaquant a déposé 9,870 ADA et un montant minimal d OADA. Presque tout le dépôt en ADA a été comptabilisé comme frais de protocole, ne laissant qu un seul lovelace ajouté à la réserve d ADA échangeable du pool.
Quarante cinq secondes plus tard, une deuxième transaction a fait passer la réserve d ADA échangeable calculée en dessous de zéro. Comme l invariant StableSwap était évalué avec une réserve négative, le validateur a accepté une transaction qui a retiré à la fois ADA et OADA du pool.
L offre de jetons LP est restée inchangée, aucun jeton LP n ayant été frappé ou brûlé pendant l exploitation.
Splash a indiqué que deux protections supplémentaires auraient arrêté l attaque: exiger que les réserves échangeables demeurent positives ou imposer une limite supérieure aux variations des frais de protocole accumulés.
Le rapport précise également que la branche de swap exécutée correspondait au code précédemment audité. L audit de 2024 n a pas identifié les vérifications des frais de protocole, de réserve positive et de direction d échange manquantes qui ont été utilisées dans l attaque.
Pourquoi le pool était crucial pour OADA
OADA est un actif synthétique indexé sur ADA, développé par Optim Finance. Les utilisateurs peuvent frapper OADA en déposant de l ADA, mais le système ne fournit pas de mécanisme direct pour convertir OADA à nouveau en ADA.
À la place, les utilisateurs sortent normalement via le pool StableSwap ADA/OADA sur Splash. Le pool soutenait aussi l Algorithmic Market Operation d Optim, qui gérait la liquidité pour maintenir OADA proche de son ancrage à ADA.
Le rapport officiel sur l incident attribue l exploitation au validateur de Splash. Il n identifie pas de vulnérabilité dans l AMO d Optim et ne décrit pas l incident comme un piratage d un contrat Optim.
Le vidage du pool Splash a supprimé la principale voie de sortie d OADA ainsi que le marché utilisé pour soutenir son ancrage.
L attaquant a ensuite vendu l OADA retiré via un pool Minswap V2 OADA/FLDT. L échange a produit environ 563,073 FLDT, qui ont ensuite été convertis en environ 115,323 ADA.
Optim a signalé que l attaquant avait aussi vidé la liquidité OADA sur d autres lieux d échange. Ces protocoles n ont pas été compromis par la même faille de validateur. Leurs marchés ont été affectés après que le pool principal de Splash avait déjà été vidé.
Prochaines étapes
Optim a indiqué que son protocole était en pause et que toute la liquidité disponible avait été retirée. L équipe a demandé à toute personne fournissant de la liquidité pour OADA ou pour le jeton de gouvernance d Optim O de se retirer immédiatement et a averti les utilisateurs de ne pas créer de nouvelles positions de liquidité OADA.
Optim n a pas précisé si la pause couvre tous les produits et modules ou seulement les opérations liées à OADA.
Splash a marqué le code StableSwap affecté comme vulnérable et retrace les fonds envoyés vers des adresses liées aux systèmes de dépôt des plateformes d échange. L équipe a indiqué prévoir de contacter KuCoin et Gate.io avec les informations de transaction.
Splash a également invité l attaquant à restituer les fonds dans le cadre d une résolution white hat potentielle impliquant une récompense et sans nouvelle escalade.
Aucun fonds n a été publiquement confirmé comme restitué. Ni Splash ni Optim n ont annoncé de programme de remboursement, de calendrier de récupération ou de publication d un validateur corrigé.