Le pont cross-chain de zkLink Nova a été piraté hier soir : un faux justificatif de lot a permis de dérober environ 780 000 dollars
Le 28 octobre à 22 h 21 UTC, une transaction a retiré environ 780 000 dollars du contrat de garde Ethereum de zkLink Nova — il était 6 h 21 ce matin à Pékin. Blockaid a donné l’alerte en premier, indiquant que l’attaque était toujours en cours et que le contrat principal de garde n’avait pas encore été mis en pause. SlowMist estime le montant dérobé à environ 783 100 dollars.
zkLink Nova est un réseau de couche 3 d’agrégation, dont le règlement final s’effectue sur Ethereum. Lorsqu’un utilisateur retire des fonds de Nova vers Ethereum, le contrat de garde doit d’abord vérifier un justificatif appelé « batch root », qui sert en quelque sorte d’empreinte d’un lot de transactions. Le contrat ne donne son feu vert que si cette empreinte est valide. Le problème était de savoir qui pouvait inscrire une empreinte dans le contrat.
L’analyse de SlowMist pointe la fonction claimMessage du contrat Arbitrator. Celle-ci n’effaçait pas la valeur une fois finalizeMessageHash utilisé et n’exigeait pas une nouvelle authentification à chaque rappel. L’attaquant a d’abord chargé un hachage valide dans un contrat relais que n’importe qui pouvait appeler, puis a changé la cible pour la passerelle Ethereum, faisant ainsi apparaître l’étape de synchronisation du batch root comme si elle provenait de la passerelle légitime. Une fois l’identité usurpée, le faux root du lot n° 116409 a été inscrit dans le contrat. Toutes les preuves de retrait soumises par l’attaquant correspondaient, et le contrat de garde a tout autorisé. L’opération entière s’est déroulée en une seule transaction, au bloc 26294188.
Au total, 12 types de jetons ont été retirés. La plus grosse part était constituée de pufETH de Puffer : 245,74 jetons, d’une valeur d’environ 615 000 dollars, soit près de 80 % du total. Le reste comprenait 22,43 ETH, 12,57 ezETH, 18 113 USDC et de petites quantités d’autres jetons. En moins d’une heure, l’attaquant avait déjà échangé 123,26 ETH sur Curve, puis transféré environ 303 ETH vers trois adresses en trois transactions. Une autre adresse liée à l’attaque a ensuite retiré environ 216,4 millions de ZKL via le même pont, soit quelque 42 000 dollars.
La leçon pour les petits investisseurs ne tient pas au montant. 780 000 dollars, ce n’est pas énorme : en avril dernier, l’incident de Kelp DAO avait coûté 292 millions de dollars. Ce qu’il faut vraiment retenir, c’est le chemin suivi par l’attaque. Un contrat relais accessible à tous a été traité comme une autorité habilitée ; une valeur temporaire qui n’avait pas été correctement effacée a suffi à rompre la chaîne de vérification en son milieu. Si le système se trompe sur l’identité de la personne à qui il ouvre la porte, peu importe la quantité d’actifs à l’intérieur : rien ne pourra les retenir. Au moment où j’écris ces lignes, zkLink n’a pas encore publié de déclaration, n’a pas confirmé la mise en pause du pont et n’a pas annoncé de plan d’indemnisation. Se précipiter pour retirer ses fonds maintenant pourrait revenir à en envoyer davantage par une porte qui n’est pas encore fermée.
Mon avis est simple : quand un pont est touché, commencez par vérifier sur les comptes officiels les annonces de mise en pause et ne vous précipitez pas pour retirer vos fonds. Tant qu’aucune annonce de mise en pause n’a été publiée, évitez d’y déposer de nouveaux fonds et ne vous empressez pas d’interagir avec le pont. Si vous y détenez déjà des actifs, mieux vaut les retirer par étapes plutôt que tout d’un coup, et vérifier les consignes de mise en pause avant tout retrait.
Avez-vous encore des actifs bloqués sur un pont cross-chain ? Quand avez-vous vérifié pour la dernière fois son statut de mise en pause et ses annonces officielles ?
#BTC #跨链桥 #安全复盘 #zkLink #SécuritéDeFi
—— Xiaokai, petit investisseur Web3
Ce contenu est une compilation d’informations publiques et ne constitue pas un conseil en investissement. Les montants mentionnés se fondent sur les informations publiques de Blockaid, SlowMist et Etherscan ; pour les annonces ultérieures du projet, veuillez vous référer à ses canaux officiels.