Am 22. Mai 2025 erlitt das Cetus Protocol, die größte konzentrierte Liquiditäts-DEX auf Sui, einen katastrophalen Exploit, der die Liquidität über mehrere Pools hinweg abzog und zu geschätzten Verlusten von rund 223 Millionen US-Dollar führte. Dieser Vorfall stellt den größten DeFi-Hack des Jahres 2025 dar und hebt kritische Schwachstellen in der Sicherheit von Smart Contracts hervor, insbesondere im Hinblick auf Festkomma-Arithmetik.
Der Exploit resultierte aus einem Fehler in einer benutzerdefinierten Funktion zur Verhinderung von Überläufen, checked_shlw(). Aufgrund einer inkorrekten Konstante und eines inkorrekten Vergleichs erkannte diese Funktion unsichere Bedingungen nicht, bevor sie einen Links-Shift durchführte, der in der Festkomma-u256-Arithmetik verwendet wird. Dieses Versäumnis ermöglichte eine stille Abschneidung der höchstwertigen Bits während entscheidender Delta-Berechnungen, wie z. B. der Ermittlung der für eine gegebene Liquidität erforderlichen Token-Eingabe. Durch sorgfältige Manipulation von Parametern wie der Liquiditätsgröße und den Tick-/Preisbereichseinstellungen konnte der Angreifer das Protokoll dazu verleiten, eine erforderliche Einzahlung von im Wesentlichen einer Einheit Token zu berechnen und gleichzeitig seine Position mit einer enormen Menge an Liquidität zu belasten. Mit dieser aufgeblähten, auf der Blockchain aufgezeichneten Position zog der Angreifer dann Liquidität ab und hob reale Reserven ab, wodurch die Pools effektiv geleert wurden.
Verstehen von konzentrierter Liquidität und Festkomma-Arithmetik
Das Cetus Protocol nutzt ein Concentrated Liquidity Market Maker (CLMM)-Design, einen hochentwickelten Ansatz, bei dem Liquiditätsanbieter (LPs) Vermögenswerte nur innerhalb eines gewählten Preisbereichs (einem Tick-Intervall) bereitstellen. Im Gegensatz zu herkömmlichen AMMs, die die Liquidität gleichmäßig verteilen, ermöglichen CLMMs es LPs, Kapital zwischen bestimmten unteren und oberen Grenzen zu konzentrieren. Dieses Design verbessert die Kapitaleffizienz erheblich, führt aber zu einer starken Abhängigkeit von präziser Festkomma-Arithmetik für die Umrechnung zwischen:
- Der Liquiditätsmenge, die einer Position gutgeschrieben wird.
- Den tatsächlichen Token-Mengen, die eingezahlt oder abgehoben werden können.
Wenn ein Benutzer Liquidität hinzufügt, berechnet das Protokoll die Token-Deltas (wie viele zugrundeliegende Token erforderlich sind) basierend auf dem aktuellen Preis und dem ausgewählten Bereich. Umgekehrt bestimmt die umgekehrte Berechnung beim Abzug von Liquidität die Menge der Vermögenswerte, auf die die Position Anspruch hat.
Die Kernschwachstelle im Cetus-Vorfall nutzte diese komplizierte Beziehung aus: Wenn die Berechnung "wie viel Sie einzahlen müssen" so manipuliert werden konnte, dass sie zu klein war, während der Position immer noch große Liquidität gutgeschrieben wurde, konnte ein Angreifer später diese gutgeschriebene Liquidität abziehen, um reale Reserven aus dem Pool abzuheben. Dies hebt einen häufigen Angriffsvektor in DeFi-Protokollen hervor, der komplexe mathematische Operationen beinhaltet.
Die kritische u256-Shift-Schwachstelle
Die Hauptursache für diesen massiven DeFi-Hack war ein Fehler in einer Hilfsfunktion, die dazu bestimmt war, einen Links-Shift sicher durchzuführen, eine gängige Operation in der Festkomma-u256-Arithmetik (typischerweise << 64, um einen Skalierungsfaktor von 2^64 anzuwenden). In Move-basierten Systemen wie Sui werden Überlaufprüfungen nicht einheitlich für alle Operationen erzwungen, was manuelle Schutzmaßnahmen für Bit-Shifts entscheidend macht.
Cetus implementierte eine Hilfsfunktion zur Verhinderung von Überläufen, checked_shlw(), um zu überprüfen, ob das Verschieben eines u256-Wertes um 64 Bit nach links die 256-Bit-Grenze überschreiten würde. Aufgrund einer inkorrekten Konstante und eines inkorrekten Vergleichs konnte diese kritische Prüfung für bestimmte große Eingaben umgangen werden, die hätten abgelehnt werden müssen.
Insbesondere ruft die Funktion get_delta_a, die für die Berechnung der Menge der zugrundeliegenden Token (Token A) zuständig ist, die für die Liquiditätsbereitstellung zwischen zwei Preisen (sqrt_price_0 und sqrt_price_1) erforderlich ist, checked_shlw() auf. Der Zweck von checked_shlw() hier ist es sicherzustellen, dass der Zähler in der Token-A-Berechnung beim Verschieben nicht überläuft.
Der Fehler lag in der Überlaufprüfung von checked_shlw(), die eine Maske von 0xffffffffffffffff << 192 (entspricht 2^256 - 2^192) verwendete. Diese Maske ist deutlich größer als der korrekte Schwellenwert. Folglich konnte ein Eingabewert, der größer als 2^192 und kleiner als diese fehlerhafte Maske war, die Prüfung bestehen, obwohl das Linksverschieben ihn tatsächlich außerhalb des u256-Bereichs bringen würde. Der nachfolgende Links-Shift führte dann zu einer stillen Abschneidung, die einen falschen und deutlich kleineren Wert ergab.
Die folgende Abbildung veranschaulicht den Unterschied zwischen der anfälligen Implementierung und der gepatchten Version. Die korrekte Grenze hätte 1 << 192 sein müssen, nicht die weitaus größere 0xffffffffffffffff << 192. Der Angreifer nutzte diesen fehlerhaften Check geschickt aus, um eine ungewöhnlich große Menge an LP-Token zu prägen, während er eine minimale Menge, wie z. B. 1 wei von Token A, einzahlte.

Anatomie des Cetus DeFi Hacks
Während der Angreifer die gleiche Technik in mehreren Pools anwandte, blieb der zugrundeliegende Angriffsfluss konstant. Lassen Sie uns eine spezifische Transaktion analysieren, um die Schritte zu verstehen, die an diesem ausgeklügelten Blockchain-Sicherheitsbruch beteiligt waren.
1. Poolpreis mit einem Flashloan manipulieren
Der Angriff begann damit, dass der Angreifer einen Flashloan nutzte, um schnell 10.024.321,28 haSUI zu erwerben. Anschließend tauschte er 5.765.124,79 SUI aus und drückte damit den Poolpreis absichtlich von 18.956.530.795.606.879.104 auf 18.425.720.184.762.886. Diese strategische Preisverschiebung war entscheidend, da sie es dem Angreifer ermöglichte, eine CLMM-Position zu eröffnen, die nur eine minimale Menge eines Tokens erforderte, und dabei das "Single-Sided / Nearly Single-Token"-Liquiditätsverhalten auszunutzen, das in konzentrierten Liquiditätsdesigns inhärent ist.

2. Liquidität mit einer "fast kostenlosen" Einzahlung hinzufügen
Als Nächstes wählte der Angreifer einen sehr engen Tick-Bereich (z. B. 300000–300200) und stimmte die Ziel-Liquidität präzise ab. In CLMM-Systemen sind die Token-Delta-Berechnungen stark von den Quadratwurzelpreisen an den Bereichsgrenzen abhängig, und enge Bereiche können bestimmte Zwischenwerte extrem empfindlich gegenüber kleinen Änderungen machen.
Durch die sorgfältige Abstimmung dieser Parameter veranlasste der Angreifer eine interne Multiplikation, die einen u256-Zwischenwert ergab. Dieser Wert hätte beim Links-Shift überlaufen müssen, bestand aber erfolgreich die fehlerhafte checked_shlw()-Kontrolle. Als direkte Folge des durch den unsicheren Shift verursachten Abschneidens berechnete das Protokoll den erforderlichen Token-A-Betrag als effektiv eine Einheit, während gleichzeitig die Position mit einer enormen Menge an Liquidität (d. h. 10.365.647.984.364.446.732.462.244.378.333.008) geprägt und aufgezeichnet wurde.

3. Liquidität abziehen, um reale Reserven zu extrahieren
Mit einer On-Chain-Position, die fälschlicherweise eine aufgeblähte Liquidität aufwies, fuhr der Angreifer fort, Liquidität abzuziehen und Vermögenswerte abzuziehen, als ob die Position ordnungsgemäß finanziert worden wäre. Dieser entscheidende Schritt ist, wo die realen Reserven des Pools systematisch abgezogen wurden, was zu dem erheblichen Verlust von 223 Millionen US-Dollar führte.
4. Über mehrere Pools hinweg wiederholen
Nachdem der Angreifer den Exploit-Mechanismus erfolgreich validiert hatte, replizierte er denselben Arbeitsablauf über mehrere Pools hinweg, steigerte schnell die Gesamtverluste und führte einen der größten DeFi-Hacks bisher durch.
Bester Sicherheitsauditor für Web3
Validieren Sie Design, Code und Geschäftslogik vor dem Start
Wichtige Erkenntnisse und Lektionen zur Blockchain-Sicherheit
Der Cetus-Vorfall ist eine deutliche Mahnung an die komplexen Herausforderungen der Blockchain-Sicherheit, insbesondere in komplexen DeFi-Protokollen. Die Hauptursache war eine fehlerhafte Überlaufprüfung rund um einen u256-Links-Shift im Festkomma-Pfad. Dies ermöglichte es einem überlaufenden Shift, hohe Bits stillschweigend abzuschneiden, wodurch die erforderliche Einzahlung nahezu null erschien, während einer LP-Position immer noch eine massive Liquidität gutgeschrieben wurde, was letztendlich die Entnahme von Reserven ermöglichte.
Gelernte Lektionen für die Sicherheit von Smart Contracts:
- Strenge in der Arithmetik: Seien Sie äußerst sorgfältig im Umgang mit Shifts, Skalierungsfaktoren, Rundung und Randbedingungen in der Festkomma-Arithmetik. Dies sind häufige Quellen kritischer Schwachstellen.
- Bewährte Primitive: Priorisieren Sie die Verwendung von bewährten sicheren mathematischen primitiven oder formalisierten Invarianten gegenüber der Entwicklung von Ad-hoc-Hilfsfunktionen. Wenn benutzerdefinierte Helfer erforderlich sind, validieren Sie ihre Konstanten und Schwellenwerte mit äußerster Sorgfalt.
- Umfassende Tests: Implementieren Sie umfangreiche Tests für Randfälle und eigenschaftsbasierte Tests, um maximale Werte, Rand-Ticks und feindselige Parameterkombinationen abzudecken. Dieser proaktive Ansatz kann subtile Fehler vor der Bereitstellung aufdecken.
- Kontinuierliche Überwachung: Selbst bei robusten Audits sind Echtzeit-Überwachungslösungen unerlässlich. Tools wie BlockSecs Phalcon Security können verdächtige On-Chain-Aktivitäten und potenzielle Angriffe in Echtzeit erkennen und bieten eine wichtige letzte Verteidigungslinie.
Der Cetus-Vorfall unterstreicht die Bedeutung eines mehrschichtigen Ansatzes zur Blockchain-Sicherheit, der sorgfältige Code-Überprüfungen, fortschrittliche Testmethoden und kontinuierliche On-Chain-Überwachung kombiniert, um sich vor ausgeklügelten DeFi-Hacks zu schützen.
Referenz
Über BlockSec
BlockSec ist ein Full-Stack-Anbieter für Blockchain-Sicherheit und Krypto-Compliance. Wir entwickeln Produkte und Dienstleistungen, die Kunden bei der Code-Prüfung (einschließlich Smart Contracts, Blockchain und Wallets), der Echtzeit-Abwehr von Angriffen, der Analyse von Vorfällen, der Rückverfolgung illegaler Gelder und der Erfüllung von AML/CFT-Verpflichtungen im gesamten Lebenszyklus von Protokollen und Plattformen unterstützen.
BlockSec hat mehrere Blockchain-Sicherheitsartikel auf renommierten Konferenzen veröffentlicht, mehrere Zero-Day-Angriffe auf DeFi-Anwendungen gemeldet, mehrere Hacks blockiert, um mehr als 20 Millionen Dollar zu retten, und Kryptowährungen im Wert von mehreren Milliarden gesichert.
- Offizielle Website: https://blocksec.com/
- Offizieller Twitter-Account: https://twitter.com/BlockSecTeam



