La plateforme décentralisée Bunni a publié les résultats d'une enquête sur un incident de sécurité majeur : l'attaquant a exploité une vulnérabilité d'arrondi dans les smart contracts pour lancer un Prêt Flash, entraînant le vol de 8,4 millions de dollars. Les fonds transférés ont été mélangés via Tornado Cash, ce qui complique le suivi. Bunni a proposé un programme de “bounty” aux attaquants, prêt à restituer 10 % des fonds en échange du retour du reste des montants.
Selon le rapport d'analyse post-mortem de Bunni, cette vulnérabilité a affecté :
Pool de transaction weETH/ETH sur Unichain
piscine de trading USDC/USDT sur le réseau principal Ethereum
La vulnérabilité provient d'un traitement inapproprié de la direction d'arrondi lors de la mise à jour du solde inactif du pool de fonds dans la fonction BunniHubLogic::withdraw(). Opération séparée.
La logique devrait être sécurisée, mais après plusieurs opérations complexes, elle a offert une opportunité aux attaquants.
Le rapport de Bunni a reconstitué le processus d'attaque :
Prêts Flash empruntés : l'attaquant a obtenu 3 millions de dollars USDT grâce à un prêt flash.
Manipulation des prix : plusieurs échanges ont comprimé la liquidité USDC à seulement 28 wei.
Utiliser l'erreur d'arrondi : 44 petits retraits consécutifs, réduisant davantage le solde USDC, entraînant une forte baisse de la liquidité du pool de fonds.
Arbitrage inversé : finalement, en augmentant le prix par de gros swaps, puis en effectuant des transactions inversées au prix manipulé, pour réaliser des profits énormes.
Bunni a souligné que le problème réside dans le traitement de la direction d'arrondi lors de la mise à jour du solde inactif au moment du retrait. Bien qu'un calcul unique ne présente pas d'erreur, après plusieurs opérations cumulées, l'erreur est amplifiée, créant finalement une surface d'attaque exploitable.
Bunni a déclaré : « Toutes les directions d'arrondi sont sûres dans des cas isolés, mais elles peuvent provoquer des vulnérabilités lorsqu'elles sont combinées en plusieurs opérations. »
Correction des vulnérabilités : la logique d'arrondi a été mise à jour pour prévenir des attaques similaires.
Vérification de la sécurité : la société de sécurité blockchain Cyfrin effectue des tests de bifurcation pour confirmer la sécurité après le correctif.
Récupération des fonctionnalités : toutes les fonctions de retrait des réseaux ont été rouvertes, mais les fonctions de recharge, d'échange, etc. restent suspendues.
Suivi et coopération : collaborer avec les autorités et les échanges centralisés pour tenter de geler les flux de fonds concernés.
Bunni a verrouillé deux adresses de portefeuille liées à l'attaque, mais en raison des fonds ayant été mélangés via Tornado Cash, il est difficile de confirmer l'identité de l'attaquant. La plateforme a proposé un bounty de 10 % aux hackers éthiques en échange du retour des fonds restants.
Bunni a déclaré qu'il mettrait à niveau l'ensemble du cadre de test, renforçant la simulation des scénarios d'opérations complexes pour éviter que des vulnérabilités similaires ne réapparaissent. Bien que la correction de la direction du rond puisse empêcher l'attaque actuelle, l'équipe évalue toujours si cela introduira de nouveaux risques potentiels.
Cet incident met en évidence que de petites erreurs dans la logique mathématique des smart contracts peuvent également entraîner des pertes énormes. Pour les projets DeFi, un audit de sécurité ne doit pas seulement vérifier la justesse d'une seule fonction, mais aussi se concentrer sur l'impact des interactions des opérations multiples. La réponse rapide de Bunni et sa divulgation transparente fournissent un précieux cas de sécurité pour le secteur, mais rappellent également à tous les développeurs de protocoles : dans le monde de la finance décentralisée, les détails déterminent la vie ou la mort.