Am 22. November 2023 wurde die dezentrale Börse KyberSwap Elastic um rund 54,7 Millionen $ über fünf Chains drainiert. Der Exploit kettete eine subtile Rundungs-Verzerrung und einen Tick-Update-Sequenzierungs-Fehler zusammen, um den AMM davon zu überzeugen, dass Pools doppelt so viel Liquidität hielten wie tatsächlich.
Was geschah
KyberSwap Elastic war ein Uniswap-v3-artiger Concentrated-Liquidity-AMM. Liquiditäts-Anbieter deponierten Assets in spezifische Preis-Bereiche („Ticks"), und das Pool-Accounting verfolgte, welche Ticks aktiv waren und wie viel Liquidität in jedem konzentriert war.
Der Exploit lag in der Interaktion zwischen der Swap-Funktion und der Tick-Update-Logik. Konkret:
- Der Angreifer konstruierte einen Swap, dessen berechneter Input-Betrag knapp über der Grenze eines Ticks lag, der seine eigene (sorgfältig platzierte) Liquidität enthielt.
- Aufgrund der Rundungsrichtung in der Swap-Math schloss das Protokoll, dass der Swap die Tick-Grenze überschritten habe — und löste die Tick-Update-Logik aus, die die Liquidität des nächsten Ticks zur aktiven Summe hinzufügt.
- Aber das Protokoll hatte auch geschlossen, dass der aktuelle Tick noch genug Liquidität hatte, um den Swap zu erfüllen — also aktualisierte es den Status des zuvor überquerten Ticks nie.
- Ergebnis: Die Liquidität im Tick des Angreifers wurde doppelt gezählt — einmal als noch aktiv im aktuellen Bereich und nochmal als zum nächsten Bereich hinzugefügt.
Durch Wiederholung dieses Manövers im großen Maßstab über mehrere Pools zog der Angreifer weit mehr aus jedem Pool ab, als er je deponiert hatte.
Folgen
- Der Angreifer drainte 2.367 einzigartige Liquiditäts-Anbieter für einen primären Ertrag von rund 48,7 Mio. $, mit rund 6,6 Mio. $ mehr, die binnen Stunden von Copycat-Bots eingesammelt wurden.
- US-Bundes-Staatsanwälte klagten Andean Medjedovic an, einen 22-jährigen Kanadier, für den Exploit — mit der Behauptung, die On-Chain-Aktionen stellten Commodity-Betrug dar.
- KyberSwap veröffentlichte ein detailliertes Post-Mortem, schaltete Elastic ab und konzentrierte verbleibendes Engineering auf KyberSwap Classic.
Warum es wichtig ist
KyberSwap gehört zu einem kleinen Satz von Vorfällen — neben Cetus und Balancer v2 — die zeigen, dass AMM-Invarianten-Mathematik in Produktions-Code noch Grenzland ist. Dieselbe Klasse von Präzisions-/Rundungsrichtung-/State-Update-Reihenfolge-Bugs taucht in verschiedenen AMM-Designs in verschiedenen Maßstäben immer wieder auf. Die Verteidigung sind unweigerlich Invarianten-Tests, Fuzzing und formale Verifikation — und selbst das ist nicht narrensicher.
Quellen & On-Chain-Belege
- [01]blog.kyberswap.comhttps://blog.kyberswap.com/post-mortem-kyberswap-elastic-exploit/
- [02]halborn.comhttps://www.halborn.com/blog/post/explained-the-kyberswap-hack-november-2023
- [03]slowmist.medium.comhttps://slowmist.medium.com/a-deep-dive-into-the-kyberswap-hack-3e13f3305d3a