Selon Blockaid, un attaquant a pris le contrôle du portefeuille chaud Binance 14 de Binance en exploitant le mécanisme d’autorisation EIP-7702 d’Ethereum. Comme il ne connaissait pas le nonce actuel du portefeuille, l’attaquant a soumis 50 autorisations avec des nonces différents dans une seule transaction de type 4. Une seule correspondait et a été acceptée.
Pourquoi c’est important
L’autorisation acceptée a délégué le code du compte du portefeuille à un contrat malveillant de transfert d’actifs, qui n’a pas été vérifié. L’incident montre qu’un mécanisme d’autorisation peut ouvrir la voie à la compromission d’un portefeuille lorsqu’une délégation malveillante prend effet.
Incidence sur le marché
Le contrat réserve sa fonction sweep() à une adresse désignée par l’attaquant. Il peut transférer les ETH et les jetons ERC-20 du portefeuille tout en conservant 1 ETH pour les frais de gas. L’analyse de Blockaid avertit également que les actifs reçus par la suite pourraient être transférés, ce qui étend le risque au-delà des actifs déjà détenus.
Questions fréquemment posées
-
Comment l’attaquant a-t-il fait accepter une autorisation EIP-7702 ?
Il a soumis 50 autorisations avec des nonces différents dans une seule transaction de type 4. L’une d’elles correspondait au nonce actuel de Binance 14 et a été acceptée.
-
Que s’est-il passé après l’acceptation de l’autorisation ?
L’autorisation a délégué le code du compte du portefeuille chaud à un contrat malveillant de transfert d’actifs, qui n’a pas été vérifié.
-
Quels actifs le contrat malveillant peut-il transférer ?
Sa fonction sweep() peut transférer les ETH et les jetons ERC-20 du portefeuille tout en conservant 1 ETH pour les frais de gas.
-
Qui peut appeler la fonction sweep() du contrat ?
Cette fonction est réservée à une adresse désignée par l’attaquant.
-
Les actifs envoyés ultérieurement au portefeuille pourraient-ils aussi être touchés ?
Oui. Selon l’analyse de Blockaid, les actifs reçus par la suite pourraient eux aussi être transférés.