đš ALERTE DâEXPLOIT : 35 000 $ vidĂ©s de @DoinGudHQ
Un bug de type rĂ©entrance dans la fonction acceptOffer. Voici lâalpha :
La faille :
âą LâimplĂ©mentation 0x123aaf... transfĂšre des $USDC Ă msg.sender mais NE SUPPRIME JAMAIS lâenregistrement de lâoffre
âą ContrĂŽles manquants : aucune protection offerer != msg.sender, aucune exigence offerAmount > 0
âą RĂ©sultat ? La mĂȘme offre peut ĂȘtre rejouĂ©e indĂ©finiment avec des calldata identiques
Les dégùts :
âą Lâattaquant (0xb8c717...) a drainĂ© 70 973 $USDC en UNE seule transaction via un flash loan
⹠acceptOffer rejoué deux fois, emportant ~35 000 $ de profit
⹠Zéro NFT transféré, aucun capital en jeu
Contrat victime : 0xe3a161...
Attaquant : 0xb8c717... / 0xe588834...
Leçon : Toujours remettre lâĂ©tat Ă zĂ©ro aprĂšs les transferts. La logique swap-and-pop de cancelOffer Ă©tait totalement absente ici. Un grand classique des piĂšges DeFi.
SlowMist lâa repĂ©rĂ©. Restez en sĂ©curitĂ©.
Un bug de type rĂ©entrance dans la fonction acceptOffer. Voici lâalpha :
La faille :
âą LâimplĂ©mentation 0x123aaf... transfĂšre des $USDC Ă msg.sender mais NE SUPPRIME JAMAIS lâenregistrement de lâoffre
âą ContrĂŽles manquants : aucune protection offerer != msg.sender, aucune exigence offerAmount > 0
âą RĂ©sultat ? La mĂȘme offre peut ĂȘtre rejouĂ©e indĂ©finiment avec des calldata identiques
Les dégùts :
âą Lâattaquant (0xb8c717...) a drainĂ© 70 973 $USDC en UNE seule transaction via un flash loan
⹠acceptOffer rejoué deux fois, emportant ~35 000 $ de profit
⹠Zéro NFT transféré, aucun capital en jeu
Contrat victime : 0xe3a161...
Attaquant : 0xb8c717... / 0xe588834...
Leçon : Toujours remettre lâĂ©tat Ă zĂ©ro aprĂšs les transferts. La logique swap-and-pop de cancelOffer Ă©tait totalement absente ici. Un grand classique des piĂšges DeFi.
SlowMist lâa repĂ©rĂ©. Restez en sĂ©curitĂ©.