Une vulnérabilité de stockage transitoire a conduit à une attaque de 300 000 dollars contre un projet off-chain, les experts analysent les conseils de prévention.
Analyse de l'incident d'attaque off-chain de 300 000 dollars provoqué par une vulnérabilité de stockage transitoire
Le 30 mars 2025, un projet de trading à effet de levier sur une chaîne a été attaqué, entraînant une perte d'actifs de plus de 300 000 dollars. L'équipe de sécurité a effectué une analyse approfondie de cet événement et partage maintenant les résultats comme suit :
Contexte
L'attaque a eu lieu sur le réseau Ethereum, ciblant un projet de trading à effet de levier. L'attaquant a exploité une vulnérabilité liée au stockage transitoire dans le contrat de ce projet.
Connaissances préalables
La version 0.8.24 de Solidity a introduit la fonctionnalité de stockage transitoire (transient storage), qui est un nouvel emplacement de stockage de données. Ses principales caractéristiques incluent :
Coût de gas faible : les opérations TSTORE et TLOAD consomment fixement 100 gas.
Persistance des transactions : les données restent valides pendant toute la durée de la transaction
Effacement automatique : réinitialisation automatique à zéro après la fin de la transaction
Causes de la vulnérabilité
La cause fondamentale de cette attaque est que les valeurs stockées de manière transitoire dans le contrat à l'aide de tstore n'ont pas été effacées après la fin de l'appel de la fonction. Cela a permis aux attaquants d'exploiter cette caractéristique pour construire des adresses spécifiques, contourner les vérifications de permissions et transférer des jetons.
Processus d'attaque
L'attaquant crée deux jetons malveillants A et B, et crée un pool de liquidités pour eux sur un DEX.
Appeler la fonction initialize du contrat cible pour créer un marché de trading à effet de levier avec le token A comme collatéral et le token B comme token de dette.
Appeler la fonction mint pour déposer le token B et créer un token de levier, au cours de ce processus, deux opérations de stockage transitoire ont été effectuées.
Créer un contrat malveillant dont l'adresse est identique à la valeur de stockage transitoire lors de la deuxième fois.
En appelant la fonction de rappel du contrat cible via ce contrat malveillant, contournez la vérification des autorisations pour transférer des jetons.
Enfin, en attaquant le contrat (token A), appeler à nouveau la fonction de rappel pour transférer d'autres tokens (comme WBTC, WETH) et réaliser un profit.
Analyse des flux de fonds
Les attaquants ont volé environ 300 000 dollars d'actifs, y compris :
17,814.8626 USDC
1.4085 WBTC
119.871 WETH
Ensuite, l'attaquant a échangé WBTC et USDC contre WETH, et a finalement transféré 193,1428 WETH dans un service de mixage.
Les fonds initiaux de l'attaquant (0,3 ETH) proviennent également de ce service de mélange.
Résumé et recommandations
L'attaque a pour cœur d'exploiter la caractéristique de stockage transitoire qui maintient la valeur inchangée pendant toute la durée de la transaction, contournant ainsi la vérification des autorisations du contrat. Pour prévenir des attaques similaires, il est conseillé aux projets :
Après la fin de l'appel de fonction, utilisez immédiatement tstore(key pour effacer les valeurs dans le stockage transitoire.
Renforcer l'audit des codes de contrat et les tests de sécurité.
Utilisez avec prudence les nouvelles caractéristiques linguistiques introduites et comprenez bien leurs risques potentiels.
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.
7 J'aime
Récompense
7
6
Partager
Commentaire
0/400
PensionDestroyer
· Il y a 6h
Encore des pigeons ont envoyé.
Voir l'originalRépondre0
TestnetFreeloader
· Il y a 6h
Ah, vraiment, c'est n'importe quoi, ils ne peuvent même pas garder leur propre projet.
Voir l'originalRépondre0
LootboxPhobia
· Il y a 7h
Oh non, encore un frère a eu des problèmes.
Voir l'originalRépondre0
BearMarketMonk
· Il y a 7h
Le farming a également emporté les failles de contrat.
Voir l'originalRépondre0
DeFiAlchemist
· Il y a 7h
ah, un autre agneau sacrificiel aux arts sombres de l'exploitation des contrats intelligents... *ajuste sa boule de cristal* ces vulnérabilités de stockage éphémère sont comme des fissures dans le sceau hermétique de l'alchimie des protocoles
Une vulnérabilité de stockage transitoire a conduit à une attaque de 300 000 dollars contre un projet off-chain, les experts analysent les conseils de prévention.
Analyse de l'incident d'attaque off-chain de 300 000 dollars provoqué par une vulnérabilité de stockage transitoire
Le 30 mars 2025, un projet de trading à effet de levier sur une chaîne a été attaqué, entraînant une perte d'actifs de plus de 300 000 dollars. L'équipe de sécurité a effectué une analyse approfondie de cet événement et partage maintenant les résultats comme suit :
Contexte
L'attaque a eu lieu sur le réseau Ethereum, ciblant un projet de trading à effet de levier. L'attaquant a exploité une vulnérabilité liée au stockage transitoire dans le contrat de ce projet.
Connaissances préalables
La version 0.8.24 de Solidity a introduit la fonctionnalité de stockage transitoire (transient storage), qui est un nouvel emplacement de stockage de données. Ses principales caractéristiques incluent :
Causes de la vulnérabilité
La cause fondamentale de cette attaque est que les valeurs stockées de manière transitoire dans le contrat à l'aide de tstore n'ont pas été effacées après la fin de l'appel de la fonction. Cela a permis aux attaquants d'exploiter cette caractéristique pour construire des adresses spécifiques, contourner les vérifications de permissions et transférer des jetons.
Processus d'attaque
Analyse des flux de fonds
Les attaquants ont volé environ 300 000 dollars d'actifs, y compris :
Ensuite, l'attaquant a échangé WBTC et USDC contre WETH, et a finalement transféré 193,1428 WETH dans un service de mixage.
Les fonds initiaux de l'attaquant (0,3 ETH) proviennent également de ce service de mélange.
Résumé et recommandations
L'attaque a pour cœur d'exploiter la caractéristique de stockage transitoire qui maintient la valeur inchangée pendant toute la durée de la transaction, contournant ainsi la vérification des autorisations du contrat. Pour prévenir des attaques similaires, il est conseillé aux projets :