L'exploit d'UNCX révèle une faille dans la comptabilisation des parts derrière une perte estimée à 1,5 million de dollars

ETH
BNB
LINK
SUI
UNI
Vulnérabilité des contrats intelligentscomptabilisation des partsImmunefiExploitacquisitionperte
il y a 2 heuresSource: crypto.news
L'exploit d'UNCX révèle une faille dans la comptabilisation des parts derrière une perte estimée à 1,5 million de dollars

L’exploit de Vesting V2 d’UNCX a exposé une faille de comptabilisation des parts qui a permis aux attaquants de gonfler leurs réclamations sur les jetons mis en commun, a expliqué le chef de la sécurité d’Immunefi après des rapports faisant état d’environ 1,5 million de dollars drainés sur quatre chaînes.

Résumé

  • Les fonctions de retrait et d’annulation ont déséquilibré la comptabilisation des parts, selon Magalhães.
  • Les pertes signalées ont atteint environ 1,5 million de dollars sur quatre réseaux, avec l’implication de portefeuilles imitateurs et de bots.
  • Magalhães a conseillé un contact privé avec les équipes concernées avant les avertissements publics de retrait lorsque cela est possible.
  • Les fournisseurs et les projets concernés partagent la responsabilité de travailler à un remboursement, a-t-il déclaré.

Gonçalo Magalhães, responsable de la sécurité chez Immunefi, a déclaré à crypto.news que le contrat n’a pas réussi à maintenir la cohérence de ses compteurs de parts lorsque les utilisateurs retiraient des jetons acquis et annulaient des positions.

Les retraits d’UNCX ont laissé un décompte de parts obsolète

Selon le récit de Magalhães, la faiblesse a commencé avec la fonction de libération du contrat, qui permet à un bénéficiaire de retirer des jetons devenus disponibles selon un calendrier d’acquisition.

Après un retrait, la fonction n’a pas soustrait les parts libérées du compteur de la position, a-t-il déclaré. Lorsque la fonction d’annulation a ensuite lu cette valeur inchangée, elle a soustrait à nouveau la portion non acquise, faussant la comptabilisation du pool.

Selon le chef de la sécurité, la combinaison a gonflé la valeur attribuée aux parts restantes. Un attaquant pouvait alors utiliser une position laissée dans le pool pour retirer plus de jetons qu’elle n’aurait dû en recevoir.

Décrivant une attaque, Magalhães a déclaré que l’exploiteur a ouvert trois positions d’acquisition et en a sacrifié deux via les fonctions de retrait et d’annulation. La position restante est devenue éligible à un retrait portant ce qu’il a décrit comme un « profit massif ».

Il a identifié la défaillance centrale comme l’absence d’une règle de comptabilisation cohérente entre les fonctions du contrat.

« En fin de compte, le contrat intelligent n’a pas réussi à s’assurer qu’aucune fonction ne pouvait briser l’invariant autour du compteur global des parts. »

Son explication situe la faiblesse dans la manière dont les fonctions mettaient à jour et réutilisaient les soldes de parts. La sauvegarde qu’il a identifiée était une règle garantissant que chaque opération préservait l’exactitude du décompte total des parts.

The Crypto Times a rapporté le 15 octobre que Blockaid avait estimé les pertes à environ 1,49 million de dollars sur Ethereum, BNB Chain, Base et Robinhood Chain. Son compte a attribué 11 transactions de drainage à une activité impliquant l’attaquant original, des portefeuilles imitateurs et des bots de valeur extractible maximale, ou MEV.

L’intervention privée précède les avertissements publics

Interrogé sur la manière dont les entreprises de sécurité devraient réagir lorsqu’un exploit reste actif, Magalhães a déclaré que la réponse disponible dépend du protocole et des personnes pouvant intervenir.

« Une fois toutes les options épuisées, il reste peu à faire à part appeler publiquement les utilisateurs à retirer leurs fonds immédiatement. »

Magalhães n’a pas présenté de calendrier de divulgation unique adapté à chaque incident. Sa réponse a plutôt décrit une séquence d’interventions possibles, commençant par les personnes qui pourraient être en mesure d’arrêter l’attaque ou de retirer les dépôts exposés.

Un compte rendu du 6 octobre d’un coffre Base non identifié a décrit un obstacle distinct à l’intervention privée. Dans ce cas, Magalhães a déclaré qu’un chercheur était confronté à une incertitude juridique parce que les opérateurs du coffre n’étaient pas identifiés et qu’il n’y avait pas de canal de divulgation clair. Le briefing de l’incident a estimé le vol à environ 6 millions de dollars.

Les historiques de portefeuille aident les enquêteurs à distinguer les participants

Pour les enquêteurs examinant UNCX, Magalhães a déclaré que les historiques de transactions fournissent un point de départ pour distinguer l’exploiteur original des autres participants.

Selon lui, la personne qui a déployé l'attaque en premier apparaît généralement parmi les premiers acteurs. Les utilisateurs établis ont des enregistrements d'interactions antérieures avec le protocole, tandis que les portefeuilles de trading automatisés peuvent montrer un historique cohérent avec une activité de bot.

Les enquêteurs peuvent comparer les transactions ultérieures avec la séquence utilisée par l'attaquant initial, selon Magalhães. Un client précédent pourrait encore avoir copié l'exploit, donc une relation existante avec le protocole ne tranche pas la question.

« En fin de compte, la ligne devient floue et difficile à tracer. »

Un incident distinct du 15 septembre impliquant 2 900 rsETH sur Ethereum illustre pourquoi les enquêteurs examinent l'ordre des transactions. Les chercheurs en sécurité ont déclaré que le bot Yoink s'est exécuté avant l'attaquant présumé dans le même bloc, tandis que la transaction d'exploit originale a échoué. Le bot a reçu des actifs évalués à environ 7,8 millions de dollars à l'époque.

Concernant les négociations de récupération, le PDG d'Immunefi, Mitchell Amador, a pris en compte une question d'autorisation différente dans des commentaires sur Liquid Network publiés le 21 septembre. Il a déclaré que les chercheurs devraient utiliser des canaux de divulgation privés et des conditions de prime convenues au lieu de prendre les actifs des utilisateurs et de fixer une récompense après coup.

Les fournisseurs et les projets devraient œuvrer pour le remboursement

Interrogé sur les projets dont les jetons étaient détenus dans une infrastructure de vesting partagée, Magalhães a déclaré que les équipes devraient faire examiner tout fournisseur qu'elles adoptent par leur propre personnel de sécurité.

La réputation d'un fournisseur fait partie de cette évaluation, a-t-il dit, mais sa recommandation plaçait l'examen technique du côté de l'équipe choisissant l'infrastructure.

Sur la responsabilité après un exploit, Magalhães a déclaré que le fournisseur responsable du bug et les projets qui l'ont sélectionné devraient tous deux œuvrer pour indemniser les utilisateurs.

« La responsabilité d'œuvrer pour indemniser les utilisateurs incombe à la fois au fournisseur présentant le bug et aux projets qui ont fait confiance à ce fournisseur. »

Ses commentaires décrivaient la responsabilité de poursuivre le remboursement, sans fixer de formule de compensation ni attribuer un pourcentage des pertes à l'une ou l'autre partie.

Pour les auditeurs, Magalhães a distingué une vulnérabilité manquée d'une garantie que le code examiné ne peut pas échouer. Il a déclaré qu'un service d'audit ne promet pas un « code infaillible ».

The Crypto Times a rapporté que la réponse d'UNCX incluait des frais plus élevés destinés à décourager toute exploitation ultérieure et une coordination avec les équipes affectées, les forces de l'ordre et SEAL 911. Selon ce compte rendu du 15 octobre, UNCX a déclaré que ses verrous de liquidité et ses contrats de vesting hérités n'étaient pas affectés et prévoyait de publier des conclusions techniques et un plan de récupération proposé.