GMX a subi une grave faille de sécurité, avec des pertes de plus de 40 millions de dollars
Récemment, un incident de piratage ciblant une plateforme d'échange décentralisée a suscité une large attention dans le secteur. Les attaquants ont exploité une vulnérabilité de réentrance pour ouvrir des positions à découvert dans le cadre de l'activation de la fonction de levier du contrat, réussissant ainsi à voler plus de 40 millions de dollars d'actifs sur la plateforme.
Le problème central de cette attaque réside dans l'utilisation incorrecte de la fonction executeDecreaseOrder. Cette fonction a été conçue pour prendre un compte externe (EOA) comme premier paramètre, mais l'attaquant a habilement passé une adresse de contrat intelligent. Cela a permis à l'attaquant de pénétrer plusieurs fois dans le système durant le processus de rachat d'actifs, manipulant ainsi l'état interne et obtenant finalement des actifs bien supérieurs à la valeur réelle de GLP qu'il possédait.
En temps normal, le jeton GLP de la plateforme représente la part des utilisateurs dans divers actifs du fonds commun tels que USDC, ETH, WBTC, etc. Lorsqu'un utilisateur redemande des GLP, le système calcule la quantité d'actifs à retourner en fonction de la valeur totale des actifs sous gestion (AUM) et du pourcentage de GLP détenu par l'utilisateur. Le calcul de l'AUM implique plusieurs facteurs, y compris la valeur totale de tous les pools de jetons, les gains et pertes non réalisés des positions courtes globales, etc.
Cependant, lorsque la plateforme a activé la fonction de trading à effet de levier, ce mécanisme a révélé une faiblesse fatale. Les attaquants ont ouvert des positions à découvert de WBTC de grande taille avant de racheter le GLP. Comme le système considère les pertes non réalisées comme des "actifs" lors du calcul de l'AUM, cela a conduit à une augmentation artificielle de l'AUM, bien que la trésorerie n'ait en réalité pas obtenu de valeur supplémentaire. Le calcul du rachat basé sur cet AUM gonflé a permis aux attaquants d'obtenir des actifs dépassant leur part légitime.
Cet incident a révélé de graves défauts dans la conception du mécanisme de levier et la mise en œuvre de la protection contre les réentrées sur la plateforme. Le principal problème réside dans le fait que la logique de rachat des actifs dépend trop des valeurs AUM, sans effectuer une vérification de sécurité adéquate sur ses éléments constitutifs ( tels que les pertes non réalisées ). En outre, l'hypothèse sur l'identité de l'appelant dans les fonctions clés manque également de vérifications obligatoires.
Cet incident de sécurité rappelle une fois de plus aux développeurs DeFi qu'ils doivent s'assurer que l'état du système n'est pas manipulé par des tiers lors du traitement des opérations sensibles sur les fonds. En particulier, lors de l'introduction de logiques financières complexes telles que le trading avec effet de levier et les produits dérivés, il est encore plus nécessaire de prévenir strictement les attaques par réentrance et les risques systémiques liés à la pollution de l'état. Toutes les parties prenantes du secteur doivent tirer des leçons de cet incident, renforcer les audits de sécurité des contrats intelligents et la gestion des risques, afin de préserver le développement sain de l'écosystème financier décentralisé.
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.
GMX a subi une attaque par une vulnérabilité de réentrance, avec des pertes dépassant 40 millions de dollars.
GMX a subi une grave faille de sécurité, avec des pertes de plus de 40 millions de dollars
Récemment, un incident de piratage ciblant une plateforme d'échange décentralisée a suscité une large attention dans le secteur. Les attaquants ont exploité une vulnérabilité de réentrance pour ouvrir des positions à découvert dans le cadre de l'activation de la fonction de levier du contrat, réussissant ainsi à voler plus de 40 millions de dollars d'actifs sur la plateforme.
Le problème central de cette attaque réside dans l'utilisation incorrecte de la fonction executeDecreaseOrder. Cette fonction a été conçue pour prendre un compte externe (EOA) comme premier paramètre, mais l'attaquant a habilement passé une adresse de contrat intelligent. Cela a permis à l'attaquant de pénétrer plusieurs fois dans le système durant le processus de rachat d'actifs, manipulant ainsi l'état interne et obtenant finalement des actifs bien supérieurs à la valeur réelle de GLP qu'il possédait.
En temps normal, le jeton GLP de la plateforme représente la part des utilisateurs dans divers actifs du fonds commun tels que USDC, ETH, WBTC, etc. Lorsqu'un utilisateur redemande des GLP, le système calcule la quantité d'actifs à retourner en fonction de la valeur totale des actifs sous gestion (AUM) et du pourcentage de GLP détenu par l'utilisateur. Le calcul de l'AUM implique plusieurs facteurs, y compris la valeur totale de tous les pools de jetons, les gains et pertes non réalisés des positions courtes globales, etc.
Cependant, lorsque la plateforme a activé la fonction de trading à effet de levier, ce mécanisme a révélé une faiblesse fatale. Les attaquants ont ouvert des positions à découvert de WBTC de grande taille avant de racheter le GLP. Comme le système considère les pertes non réalisées comme des "actifs" lors du calcul de l'AUM, cela a conduit à une augmentation artificielle de l'AUM, bien que la trésorerie n'ait en réalité pas obtenu de valeur supplémentaire. Le calcul du rachat basé sur cet AUM gonflé a permis aux attaquants d'obtenir des actifs dépassant leur part légitime.
Cet incident a révélé de graves défauts dans la conception du mécanisme de levier et la mise en œuvre de la protection contre les réentrées sur la plateforme. Le principal problème réside dans le fait que la logique de rachat des actifs dépend trop des valeurs AUM, sans effectuer une vérification de sécurité adéquate sur ses éléments constitutifs ( tels que les pertes non réalisées ). En outre, l'hypothèse sur l'identité de l'appelant dans les fonctions clés manque également de vérifications obligatoires.
Cet incident de sécurité rappelle une fois de plus aux développeurs DeFi qu'ils doivent s'assurer que l'état du système n'est pas manipulé par des tiers lors du traitement des opérations sensibles sur les fonds. En particulier, lors de l'introduction de logiques financières complexes telles que le trading avec effet de levier et les produits dérivés, il est encore plus nécessaire de prévenir strictement les attaques par réentrance et les risques systémiques liés à la pollution de l'état. Toutes les parties prenantes du secteur doivent tirer des leçons de cet incident, renforcer les audits de sécurité des contrats intelligents et la gestion des risques, afin de préserver le développement sain de l'écosystème financier décentralisé.