Une vulnérabilité de stockage temporaire a entraîné une perte de 300 000 dollars pour un projet de trading sur marge Ethereum.

Une vulnérabilité de stockage temporaire a conduit au vol d'actifs d'une valeur de 300 000 dollars

Le 30 mars 2025, un projet de trading à effet de levier sur la chaîne Ethereum a été attaqué, entraînant une perte de plus de 300 000 dollars d'actifs. L'équipe de sécurité a effectué une analyse approfondie de cet incident et partage maintenant les résultats comme suit :

Contexte

La version 0.8.24 de Solidity a introduit des caractéristiques de stockage transitoire basées sur l'EIP-1153. C'est un nouvel emplacement de stockage de données conçu pour fournir aux développeurs un moyen de stockage temporaire à faible coût et valable pendant la transaction. Le stockage transitoire est réalisé par deux nouvelles instructions EVM, TSTORE et TLOAD, et présente des caractéristiques telles que des coûts de gaz bas, la persistance au sein de la transaction et la suppression automatique.

Résidu mortel : un vol en chaîne de 300 000 dollars déclenché par un stockage transitoire

Raison de l'attaque

La cause fondamentale de cet événement est que les valeurs stockées temporairement dans la fonction avec tstore n'ont pas été effacées à la fin de l'appel de la fonction. Les attaquants ont exploité cette caractéristique pour construire des adresses malveillantes spécifiques, contournant les vérifications d'autorisation pour transférer des jetons.

Résidu mortel : un vol de 300 000 dollars sur la chaîne déclenché par un stockage transitoire

Étapes de l'attaque

  1. L'attaquant crée deux jetons malveillants A et B, et crée des pools pour ces deux jetons sur un DEX en y injectant de la liquidité.

  2. L'attaquant appelle la fonction initialize du contrat Vault, en utilisant le jeton A comme jeton de garantie et le jeton B comme jeton de dette pour créer un marché de trading à effet de levier.

  3. L'attaquant appelle la fonction mint du contrat Vault, dépose le jeton de dette B pour émettre un jeton à effet de levier. Dans ce processus, l'adresse de la piscine DEX et le montant émis sont stockés de manière transitoire.

  4. L'attaquant crée un contrat malveillant dont l'adresse est identique à celle de la valeur stockée de manière transitoire lors de la seconde fois.

  5. L'attaquant appelle la fonction de rappel du contrat Vault via un contrat malveillant pour transférer des jetons. En raison de la valeur de stockage transitoire qui n'a pas été effacée, cela entraîne un passage incorrect de la vérification d'identité.

  6. Enfin, l'attaquant appelle la fonction de rappel du contrat Vault en attaquant le contrat (jeton A), transférant ainsi d'autres jetons (comme WBTC, WETH) pour réaliser un profit.

Résidu mortel : un vol en chaîne de 300 000 dollars provoqué par un stockage transitoire

Résidu mortel : un vol en chaîne de 300 000 dollars provoqué par le stockage transitoire

Résidu mortel : Un vol en chaîne de 300 000 $ provoqué par un stockage transitoire

Résidu mortel : un vol en chaîne de 300 000 dollars déclenché par un stockage transitoire

Résidu mortel : Un vol de 300 000 dollars sur la chaîne provoqué par un stockage transitoire

Résidu mortel : un braquage de 300 000 dollars sur la chaîne provoqué par le stockage transitoire

Résidu mortel : un vol en chaîne de 300 000 dollars déclenché par un stockage transitoire

Résidu mortel : un vol en chaîne de 300 000 dollars déclenché par un stockage transitoire

Résidu mortel : un braquage de 300 000 dollars sur la chaîne provoqué par un stockage transitoire

Résidu mortel : un vol de 300 000 dollars sur la chaîne déclenché par un stockage transitoire

Résidu mortel : un vol de 300 000 dollars sur la chaîne déclenché par le stockage transitoire

Résidu mortel : un vol de 300 000 dollars sur la chaîne provoqué par un stockage transitoire

Résidu mortel : un braquage de 300 000 dollars sur la chaîne déclenché par un stockage transitoire

Résidu mortel : un vol de 300 000 dollars sur la chaîne déclenché par un stockage transitoire

Résidu mortel : un vol en chaîne de 300 000 dollars déclenché par un stockage transitoire

Analyse des flux de fonds

Des attaquants ont volé environ 300 000 dollars d'actifs, comprenant 17 814,8626 USDC, 1,4085 WBTC et 119,871 WETH. Le WBTC a été échangé contre 63,5596 WETH, et l'USDC a été échangé contre 9,7122 WETH. Ensuite, un total de 193,1428 WETH a été transféré vers une plateforme anonyme. Les fonds initiaux des attaquants provenaient de 0,3 ETH transférés vers cette plateforme.

Résumé

L'attaque en question repose sur le fait que l'attaquant a exploité la caractéristique de la mémoire transitoire qui reste inchangée pendant toute la durée de la transaction, contournant ainsi la vérification des autorisations de la fonction de rappel. Il est recommandé que les équipes de projet utilisent immédiatement tstore(key, 0) pour effacer les valeurs dans la mémoire transitoire à la fin de l'appel de la fonction, en fonction de la logique métier. De plus, il convient de renforcer l'audit du code des contrats et les tests de sécurité afin d'éviter que des situations similaires ne se reproduisent.

ETH1.97%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 7
  • Reposter
  • Partager
Commentaire
0/400
VitaliksTwinvip
· Il y a 10h
Cette vague de résumé est toujours un gaspillage de gas.
Voir l'originalRépondre0
CountdownToBrokevip
· Il y a 10h
30w encore un frère de livraison
Voir l'originalRépondre0
0xLuckboxvip
· Il y a 10h
Encore volé trois cent mille ~ smart contracts garantissent la sécurité, hein
Voir l'originalRépondre0
OnchainGossipervip
· Il y a 10h
Encore une fois, c'est un bug. N'est-ce pas idiot ?
Voir l'originalRépondre0
GateUser-0717ab66vip
· Il y a 10h
30w a aussi l'audace de le mentionner
Voir l'originalRépondre0
VibesOverChartsvip
· Il y a 10h
30w ? C'est juste des frais de transaction d'un jour.
Voir l'originalRépondre0
DefiPlaybookvip
· Il y a 10h
Selon l'échantillonnage des données, ce type de vulnérabilité de stockage entraîne un taux de perte allant jusqu'à 86,3 %, restez vigilant !
Voir l'originalRépondre0
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)