
ZetaChain : un rapport de bug ignoré avant un vol de 334K$
Le post-mortem lie l'exploitation à trois défauts de conception et envoie des correctifs pour désactiver les appels arbitraires et supprimer les approbations illimitées.
ZetaChain indique qu'une vulnérabilité à l'origine d'un exploit de passerelle inter-chaînes d'environ 334 000 $ avait été signalée via son programme de récompense pour bugs avant l'attaque, mais avait été rejetée comme un « comportement prévu ». Le post-mortem de l'équipe détaille un échec de conception en trois parties et décrit les correctifs qui sont maintenant déployés sur les nœuds du mainnet.
Points Clés
- Une soumission de récompense pour bugs a signalé la vulnérabilité avant l'exploit, mais elle a été considérée comme un « comportement prévu », a déclaré ZetaChain dans son post-mortem.
- Environ 334 000 $ ont été drainés à travers neuf transactions sur Ethereum, Arbitrum, Base et BSC à partir de portefeuilles contrôlés par ZetaChain, sans fonds d'utilisateurs affectés.
- ZetaChain a attribué le drain à un chemin en chaîne à travers trois défauts de conception : des instructions inter-chaînes arbitraires, une exécution permissive protégée par une liste noire étroite, et des approbations de jetons illimitées restantes.
- Les mesures correctives incluent la désactivation permanente de la fonctionnalité d'appel arbitraire et le passage des dépôts d'approbations illimitées à des approbations de montants exacts.
Post-Mortem : Le Rapport de Récompense pour Bugs a Précédé le Drain de Passerelle d'environ 334 000 $
Le post-mortem de ZetaChain met un détail inconfortable au centre de l'incident : la vulnérabilité à l'origine du drain de passerelle d'environ 334 000 $ avait déjà été soumise via son programme de récompense pour bugs, mais avait été rejetée comme un « comportement prévu ».
L'équipe a déclaré que cet épisode a déclenché une révision de la manière dont elle gère les soumissions de récompenses pour bugs, en mettant l'accent sur les rapports où plusieurs petits problèmes peuvent s'enchaîner pour former un exploit complet.
L'exploit lui-même a été décrit comme "prémédité", et non comme un coup aléatoire. ZetaChain a déclaré que la préparation de l'attaquant avait commencé plusieurs jours plus tôt, y compris le financement via Tornado Cash, le déploiement d'un contrat de drainage spécialement conçu sur ZetaChain, et l'exécution d'unadressecampagne de poisoning qui a été intégrée dans l'historique des transactions via des transferts de poussière.
Le cadre de ZetaChain est important pour les traders car il s'éloigne d'un compromis unique de clé et se dirige vers des risques de conception et de processus répétables.
Où l'argent a circulé : Neuf transactions sur quatre chaînes
ZetaChain a déclaré que le drain totalisait environ 334 000 $ et s'est déroulé sur neuf transactions couvrant Ethereum, Arbitrum, Base et BSC. Les fonds provenaient de portefeuilles contrôlés par ZetaChain, et non de portefeuilles d'utilisateurs, et l'équipe a déclaré qu'aucun fonds d'utilisateur n'avait été affecté.
Cette distinction réduit le choc immédiat sur le bilan pour les utilisateurs, mais elle n'élimine pas l'impact sur le marché. Pour les traders inter-chaînes, un contrat de passerelle est une dépendance de routage. Même lorsque les soldes des utilisateurs restent intacts, la confiance peut toujours être revalorisée par l'utilisation, les décisions des intégrateurs et la rapidité avec laquelle la liquidité s'éloigne du risque opérationnel perçu.
La chaîne des trois défauts : instructions arbitraires, exécution permissive, approbations illimitées
ZetaChain a attribué l'exploitation à trois défauts de conception qui, "individuellement, auraient pu sembler mineurs", mais qui se sont combinés pour créer un chemin de drainage efficace.
Tout d'abord, la passerelle permettait à quiconque d'envoyer des instructions inter-chaînes arbitraires sans restrictions. Deuxièmement, le côté récepteur exécutait « presque n'importe quel ordre sur n'importe quel contrat », et la liste noire était suffisamment étroite pour ignorer les fonctions de transfert de jetons de base.
Troisièmement, les portefeuilles qui avaient précédemment utilisé la passerelle laissaient des autorisations de dépense illimitées en place qui n'avaient jamais été nettoyées.
Mis ensemble, l'attaquant pouvait ordonner à la passerelle de transférer des tokens des portefeuilles des victimes vers le portefeuille de l'attaquant, et ZetaChain a déclaré que "la passerelle a obéi." Pour la tarification des risques, c'est la conclusion actionable : le mode de défaillance était l'hygiène des autorisations plus l'exécution de messages permissive, et non un seul composant fragile qui peut être écarté comme un cas marginal.
Déploiement de patch et examen de la triage de la chasse aux bugs
ZetaChain a déclaré qu'un patch qui désactive définitivement la fonctionnalité d'appel arbitraire est en cours de déploiement sur les nœuds du mainnet. Il a également supprimé les approbations de jetons illimitées de son flux de dépôt, les remplaçant par des approbations de montants exacts à l'avenir.
Les signaux immédiats en avant sont opérationnels. Les traders voudront une confirmation que la désactivation de l'appel arbitraire s'est pleinement propagée sur les nœuds du mainnet, ainsi qu'une clarté sur la nécessité de correctifs supplémentaires. L'autre question en cours est de savoir si les approbations de montants exacts sont actives sur toutes les chaînes prises en charge et si les intégrateurs rencontrent des frictions de compatibilité.
Le processus en attente est le pipeline de la chasse aux bugs lui-même. ZetaChain a déclaré que le problème avait été signalé précédemment mais rejeté comme un comportement prévu, et un utilisateur de X a critiqué la gestion, écrivant : « Ce bug a été signalé et ils l'ont simplement ignoré », ajoutant : « C'est ainsi que fonctionnent actuellement les programmes de chasse aux bugs avec ces protocoles.
Ils incitent à des pertes pour le protocole, le TVL et le solde de l'utilisateur au lieu de payer le chercheur pour avoir découvert et corrigé le bug. » ZetaChain n'a pas précisé si le rapport précédent correspondait à l'intégralité du chemin d'exploitation ou seulement à un composant, laissant place à plus de divulgations sur le timing, la portée et les résultats de triage mis à jour.
Ce que cela change pour la tarification des risques inter-chaînes
Je considère cela comme un incident de surface de passerelle, et non comme un événement de perte de taille titre. Le seuil qui compte est de savoir si l'ensemble de patch réduit véritablement la surface d'attaque en supprimant les appels arbitraires et en resserrant les approbations, car ceux-ci correspondent directement à deux des trois points de défaillance identifiés par ZetaChain.
Le véritable test est de savoir si ZetaChain peut transformer l'admission de la chasse aux bugs en une mise à niveau du processus qui attrape les vecteurs en chaîne avant qu'ils ne deviennent des drains.
Si cela tient, la configuration commence à sembler structurelle plutôt que dictée par le récit, et cela a de l'importance en termes pratiques car cela change la rapidité avec laquelle les routeurs de liquidité et les intégrateurs sont prêts à rétablir leur confiance dans le chemin de la passerelle après une exploitation.