Velocore Gebühren-Multiplier-Overflow
Velocores CPMM-Pools auf zkSync und Linea verloren 6,8 Mio. $: Ein Fee-Multiplier-Overflow ließ den Angreifer riesige LP-Supply gegen winzige Auszahlung minten.
- Datum
- Opfer
- Velocore
- Chain(s)
- Status
- Mittel entwendet
Am 2. Juni 2024 wurde die dezentrale Börse Velocore — bereitgestellt sowohl auf zkSync Era als auch auf Linea — um rund 6,8 Millionen Dollar in ETH durch einen Präzisions-/Overflow-Bug in der Fee-Multiplier-Logik ihres Balancer-artigen CPMM-Pool-Vertrags geleert.
Was geschah
Velocores CPMM-Pools (Constant Product Market Maker) nutzten einen Fee-Multiplier-Parameter, der mit der Größe der Auszahlungen skalierte, um Liquiditäts-Abfluss zu entmutigen. Das beabsichtigte Verhalten: Große Auszahlungen zahlen größere Gebühren.
Der Angreifer fand, dass die Gebührenberechnung keine Obergrenzenprüfung hatte und in unsinnige Werte überlaufen konnte:
- Der Angreifer rief
velocore__execute()direkt auf und simulierte eine riesige Auszahlung, um denfeeMultiplierauf einen künstlich aufgeblähten Wert zu treiben. - Mit gesetztem Multiplier überlief
effectiveFee1e9(der Per-Transaktions-Gebührenparameter, auf 1e9 skaliert) über 100 % hinaus — in Wraparound-Bereich, wo die Mathematik zusammenbrach. - Mit einem Flash Loan initiierte der Angreifer die tatsächliche Auszahlung. Die kaputte Gebühren-Mathematik ließ den Vertrag den Swap-Output falsch berechnen.
- Eine anschließende kleine Single-Token-Auszahlung löste einen Underflow anderswo in der Liquiditäts-Token-Mint-Logik aus, was dem Angreifer erlaubte, eine enorm unverhältnismäßige Menge LP-Tokens zu minten.
- Der Flash Loan wurde zurückgezahlt, und der Angreifer verschwand mit ~1.807 ETH, die er auf Ethereum Mainnet brückte und über Tornado Cash wusch.
Nachwirkungen
- Velocore kontaktierte über On-Chain-Nachrichten und bot eine 10%-Whitehat-Bounty; Frist verstrich ohne Antwort.
- Das Protokoll war zuvor von Zokyo, Hacken und Scalebit auditiert worden — keine davon hatte den Multiplier-Overflow-Pfad markiert.
- Velocore pausierte Operationen auf zkSync und Linea und wickelte effektiv ab.
Warum es zählt
Velocore ist einer aus einer kleinen Menge von Post-Audit-Exploits, die die Grenzen von Audit-als-Defense-in-Depth hervorheben: Drei seriöse Audit-Firmen prüften den Code, und der Bug wurde trotzdem ausgeliefert. Der wahrscheinliche Grund ist, dass Audit-Scope selten Fuzzing mit beliebigen Integer-Ranges über jede state-mutierende Funktion umfasst — und der spezifische Pfad, der feeMultiplier überlief, war nur durch eine bestimmte Sequenz von simulate + execute-Aufrufen erreichbar, die kein statisches Analysetool markierte.
Die Branchen-Reaktion war, Audits mit ökonomischen Invariantentests (Echidna, Foundry Invariants) zu schichten, die Business-Logik-Eigenschaften unter zufälligen Sequenzen von Aufrufen überprüfen, nicht nur den Standard-Test „revertiert dieser Branch?".
Quellen & On-Chain-Belege
- [01]immunebytes.comhttps://immunebytes.com/blog/velocore-finance-exploit-june-2-2024-detailed-analysis/
- [02]theblock.cohttps://www.theblock.co/post/298032/decentralized-exchange-velocore-addresses-7-million-hack-in-postmortem-offers-bounty-to-hacker
- [03]rekt.newshttps://rekt.news/velocore-rekt/