Bug de prix zéro de la marketplace TreasureDAO
~1,4 M$ de NFT volés sur TreasureDAO : la fonction buy ne vérifiait pas que la quantité produisait un prix non nul, autorisant des achats gratuits.
- Date
- Victime
- TreasureDAO
- Chaîne(s)
- Statut
- Partiellement récupéré
Le 3 mars 2022, l'écosystème NFT Arbitrum TreasureDAO a vu sa marketplace exploitée — environ 100+ NFT (~1,4 M$) achetés pour effectivement zéro MAGIC. La fonction d'achat de la marketplace ne validait pas que le prix total calculé était non nul pour une quantité donnée, donc un attaquant pouvait acheter les NFT listés sans rien payer.
Ce qui s'est passé
buyItem de la marketplace TreasureDAO calculait totalPrice = pricePerItem * quantity. En soumettant une quantité de zéro (ou une valeur qui faisait que le prix total s'arrondissait/calculait à zéro) tout en déclenchant le transfert de NFT, l'attaquant recevait les NFT listés sans transférer de MAGIC. Des centaines de NFT ont été drainés des listings actifs avant que la marketplace ne soit mise en pause.
Conséquences
- TreasureDAO a mis en pause la marketplace et travaillé avec la communauté sur un plan de restitution.
- Un nombre de NFT ont été retournés par des white-hats et récupérés ; une restitution partielle a suivi.
Pourquoi c'est important
TreasureDAO est un cas net de validation d'entrée — une fonction qui effectue un transfert d'actif doit valider que chaque paramètre économiquement significatif est dans une plage saine, y compris les cas dégénérés (quantité zéro, prix zéro) qu'aucun utilisateur légitime ne soumettrait jamais. La même leçon « valider le cas dégénéré » apparaît chez MonoX (échanger un jeton contre lui-même) et à travers le catalogue. Les marketplaces NFT sont une instance récurrente parce que leur calcul de prix (prix × quantité, royalties, partages de frais) a plus de cas limites arithmétiques qu'un simple transfert, et les cas limites sont exactement là où la valeur fuit.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-treasure-dao-hack-march-2022
- [02]cryptopotato.comhttps://cryptopotato.com/hackes-exploit-arbitrum-based-marketplace-treasure-over-100-nfts-stolen/
- [03]rekt.newshttps://rekt.news/treasure-dao-rekt