Le 15 avril 2025, le DEX de perpétuels soutenu par Binance KiloEX a été exploité pour environ 7,5 millions de dollars sur trois chaînes. L'exploit s'est déroulé comme une attaque de manipulation d'oracle d'école — ouvrir une position à un prix, la fermer à un prix follement différent — rendue possible par un bug de contrôle d'accès dans le contrat MinimalForwarder du protocole qui permettait à n'importe quel appelant de soumettre des mises à jour de prix signées arbitraires.
Ce qui s'est passé
KiloEX utilisait un flux de mise à jour de prix custom hérité de MinimalForwarderUpgradeable d'OpenZeppelin — un contrat conçu pour permettre aux utilisateurs d'exécuter des meta-transactions au nom d'un signataire qui a autorisé l'appel cryptographiquement. La fonction execute() devrait :
- Vérifier la signature de la requête meta-transaction contre les données fournies.
- Forwarder l'appel seulement si la signature correspond à un signataire autorisé.
Le MinimalForwarder customisé de KiloEX n'arrivait pas à vérifier correctement les signatures contre les données fournies — la logique de validation était structurellement présente mais ne liait pas la signature au payload réel de l'appel. N'importe quel appelant pouvait soumettre une requête de mise à jour de prix prétendant être signée par un oracle autorisé et faire accepter par le contrat.
Une fois que l'attaquant pouvait pousser des prix arbitraires à l'oracle de KiloEX :
- A ouvert un long perpétuel sur ETHUSD avec un prix rapporté par l'oracle de 100 $.
- A immédiatement fermé la même position avec un prix rapporté par l'oracle de 10 000 $ — un swing de 100× en une seule transaction.
- Est reparti avec la différence, empochant 3,12 millions de dollars en une seule transaction Base.
Répété sur les chaînes : ~3,3 M$ sur Base, ~3,1 M$ sur opBNB, ~1 M$ sur BSC.
Conséquences
- KiloEX a suspendu les opérations et offert à l'attaquant un bounty de 750 K$ (10 % de la prise) plus une décharge de responsabilité légale pour le retour des 90 % restants.
- L'équipe a blacklisté les adresses de l'attaquant et a travaillé avec des cabinets forensiques affiliés à Binance pour tracer les fonds.
- Les opérations sont restées suspendues pour une période prolongée pendant que l'équipe ré-auditait le flux de meta-transaction.
Pourquoi c'est important
KiloEX est un cas d'étude exceptionnellement pur pour pourquoi mettre à niveau ou customiser des contrats OpenZeppelin éprouvés est un territoire à haut risque. Le MinimalForwarder original est une primitive bien revue avec une couverture de tests extensive ; la customisation introduite par KiloEX — pour s'adapter à leur flux de mise à jour d'oracle — a cassé la garantie de sécurité d'une façon qui n'était pas visible dans les checklists d'audit standards.
La leçon structurelle : hériter d'un contrat de base de confiance n'est pas la même chose qu'hériter de sa sécurité. Toute surcharge d'une fonction critique pour la sécurité (vérification de signature, contrôle d'accès, protection contre le replay) doit être ré-auditée comme s'il s'agissait d'une implémentation fraîche — parce que fonctionnellement, c'en est une.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-kiloex-hack-april-2025
- [02]coindesk.comhttps://www.coindesk.com/markets/2025/04/15/dex-kiloex-loses-usd7m-in-apparent-oracle-manipulation-attack
- [03]decrypt.cohttps://decrypt.co/314827/binance-backed-dex-kiloex-suspends-operations-following-7-5-million-exploit