Am 28. Mai 2025 wurde das Cork Protocol auf Ethereum ausgenutzt [1], was zu Verlusten von rund 12 Millionen US-Dollar führte. Die Grundursache war eine Kombination aus einer Manipulation des historischen impliziten Renditedurchschnitts (HIYA) durch Zeitablauf und fehlender Zugriffskontrolle in einem Uniswap v4 Hook-Callback. Da die Risikoaufschläge von HIYA exponentiell ansteigen, wenn die Laufzeit gegen Null geht, blähten späte Swaps die HIYA auf und führten dazu, dass neu initialisierte Märkte Cover Tokens stark unterbewerteten. Gleichzeitig fehlte bei CorkHook.beforeSwap die msg.sender-Authentifizierung, was willkürliche Aufrufe mit präparierten Parametern ermöglichte. Durch die Ausnutzung beider Schwachstellen extrahierte der Angreifer große Mengen CT und DS und wandelte sie zurück in wstETH um, wodurch die Reserven des Protokolls geleert wurden.
Hintergrund
0x1.1 Tokenomics
Das Cork Protocol [2] führt ein neues Primärinstrument für tokenisiertes Risiko ein und dient als programmierbare Risikoschicht für On-Chain-Assets wie Vault-Tokens, Rendite-stabile Coins und liquide (Re-)Staking-Tokens. Die grundlegende Komponente ist der Cork Pool, der Mechanismus, um den herum Märkte aufgebaut werden. Jeder Cork Pool basiert auf einem Asset-Paar: Redemption Asset (RA) und Pegged Asset (PA).
Der Cork Pool empfängt Einlagen von Redemption Asset, das gesperrt wird. Im Gegenzug werden zwei Tokens geprägt und an den Einleger zurückgegeben: Depeg Swap (DS) und Cover Token (CT). Vor dem festgelegten Ablaufdatum können 1 DS + 1 CT/PA gegen 1 RA zurückgetauscht werden; nach Ablauf kann 1 CT proportional für die verbleibenden RA + PA im Pool eingelöst werden.
0x1.2 Contract Implementation
Sowohl DS als auch CT sind handelbar. Benutzer können CT und RA über einen NormalSwap basierend auf einer benutzerdefinierten AMM-Kurve über CorkHook handeln, während DS und RA über einen FlashSwap über Router und CorkHook gehandelt werden.
NormalSwap [Benutzerdefinierte AMM-Kurve]:
FlashSwap [FlashSwapRouter.swapDsforRa]:
-
Der Käufer transferiert RA an den
Router. -
Im ersten
beforeSwap-Aufruf berechnet derRouterden zu tauschenden DS-Betrag. Falls erforderlich, leiht er RA und CT aus dem Uniswap v4 Pool, wandelt das geliehene CT und das DS des Protokolls in RA um, behält das erforderliche RA und gibt das geliehene RA an den Uniswap Pool zurück. -
Im zweiten
beforeSwap-Aufruf zerlegt derRouterRA in CT und DS überdepositPsm, transferiert das gesamte DS an den Benutzer, zahlt das geliehene CT an den Uniswap Pool zurück und erstattet jegliches überschüssige CT an den Käufer.
Fund Distribution Nach Ausgabe:
0x1.3 Pricing Mechanism for New Issuance
Das Protokoll verwendet HIYA (Historical Implied Yield Average), berechnet als die kumulative Summe von Volumen () × Risikoaufschlag (), um Risikoaufschläge zu messen und die Initialisierungspreise nach Ablauf anzupassen. Wenn die HIYA hoch ist, geht das Protokoll von einem höheren Depeg-Risiko aus, was zu einer niedrigeren initialen CT-Preisgestaltung führt.
Die Berechnung des Risikoaufschlags () besteht aus zwei Komponenten: Hohe CT-Preise korrelieren mit niedrigen -Werten (was intuitiv ist), und die Ablaufzeit T hat einen exponentiellen Verstärkungseffekt. Nahe dem Ablauf nähert sich T Null, wodurch der Exponent schnell anwächst. Dies verstärkt selbst kleine CT-Preisänderungen zu großen Risikoaufschlagswerten.
-
ist 1
-
ist der Preis von CT
-
ist die Laufzeit, normalisiert zwischen 1 und 0
Vulnerability Analysis
Der betroffene Markt umfasst die folgenden Tokens:
| Rolle | Token | Beschreibung |
|---|---|---|
| RA | wstETH |
Redemption Asset |
| PA | weETH |
Pegged Asset |
| DS | weETH8DS-2 |
Depeg Swap |
| CT | weETH8CT-2 |
Cover Token |
Zur Verdeutlichung bezieht sich der Rest dieses Berichts auf die Tokens anhand ihrer abstrakten Rollen (RA, DS, CT) und nicht ihrer konkreten Namen, außer wenn der Unterschied relevant ist.
Der Angreifer extrahierte sowohl DS als auch CT aus dem AMM und dem Router mit zwei verschiedenen Methoden. Da DS + CT gegen RA eingelöst werden kann, ermöglicht der Erhalt beider eine direkte Gewinnabschöpfung. Der Angriff besteht aus zwei Komponenten.
0x2.1 Cover Token Extraction: HIYA-Manipulation führt zu künstlich niedrigen Marktinitialisierungspreisen
Der Marktinitialisierungspreis nach Ablauf ergibt sich aus dem accumulatedHIYA-Wert des vorherigen Zeitraums. Da die HIYA während Swaps aktualisiert wird und Risikoaufschläge enthält, kann ein Angreifer kurz vor Ablauf Swaps ausführen, um die accumulatedHIYA künstlich zu erhöhen.
Dadurch wird der neue Markt zu einem verzerrten Preisverhältnis initialisiert, was dazu führt, dass Cover Tokens im AMM extrem niedrig bepreist werden, wodurch der Angreifer RA gegen eine übermäßige Menge CT tauschen kann.
0x2.2 Depeg Swap Extraction: Fehlende Zugriffskontrolle in `CorkHook.beforeSwap`
Die Schwachstelle wird durch die fehlende Senderprüfung in CorkHook.beforeSwap verursacht. Da die Funktion msg.sender == PoolManager nicht erzwingt, kann ein Angreifer sie direkt mit beliebigen Parametern aufrufen.
Durch die Bereitstellung von DS-Tokens, als wären sie RA, und das Spoofen von Router.CorkCall über präparierte Calldata kann der Angreifer eine unbefugte Aufspaltung auslösen und Werte aus einem bösartig initialisierten Markt extrahieren.
Attack Analysis
Dieser Vorfall entfaltet sich in drei Phasen: die Vorbereitungstransaktion, die Initialisierungstransaktion und die Angriffstransaktion.
The preparation transaction
In dieser Transaktion rief der Angreifer SwapRaForDs() auf, was die accumulatedHIYA manipulierte.

The initialization transaction
In dieser Transaktion wurde der Markt zu dem manipulierten Preisverhältnis initialisiert, was einen sehr niedrigen Preis für CT im AMM schuf. Der Angreifer tauschte dann RA gegen eine große Menge CT.
The attack transaction
Die wichtigsten Schritte von der Angriffstransaktion werden wie folgt zusammengefasst.
In dieser Phase erstellte der Angreifer einen gefälschten Markt, der den echten DS (weETH8DS‑2) als seinen RA behandelt. Alle in diesem gefälschten Markt geprägten Tokens werden unten als gefälschtes CT und gefälschtes DS bezeichnet.
-
Der Angreifer tauschte zunächst RA gegen DS im legitimen Markt.
-
Der Angreifer stellte einen gefälschten Markt bereit und initialisierte ihn, wobei er den echten DS als gefälschten RA deklarierte.
-
Der Angreifer rief
beforeSwapdirekt auf (unter Umgehung der fehlenden Zugriffskontrolle) mit nicht-leeremhookData, was den FlashSwap-Ausführungspfad auslöste.
-
Innerhalb von
hookDatagab der AngreiferpaymentTokenals gefälschtes CT an, was dazu führte, dass das Protokoll die RA-Zerlegungslogik gegen den gefälschten Markt ausführte. -
Das Protokoll zerlegte den gesamten gefälschten RA (d.h. echten DS) in gefälschtes CT und gefälschtes DS. Der gesamte gefälschte DS-Anteil wurde an den Angreifer transferiert, und der gefälschte CT-Anteil (abzüglich eines minimalen
paymentAmount) wurde dem Angreifer erstattet. -
Der Angreifer tauschte das extrahierte gefälschte CT und gefälschte DS im gefälschten Markt zurück gegen gefälschtes RA und erhielt den echten DS zurück.
-
Schließlich kombinierte der Angreifer den wiederhergestellten DS mit dem zuvor gekauften CT, um RA zu komponieren und dadurch den Angriffsgewinn zu realisieren.
Summary
Dieser Vorfall kombinierte zwei unabhängige Schwachstellen, von denen keine allein ausreichte, zu einer einzigen Exploit-Kette, die 12 Millionen US-Dollar aus dem Protokoll entzog.
- Exponentieller Risikoaufschlag nahe Ablaufdatum. Die HIYA-Preisformel verstärkt Risikoaufschläge, wenn die Laufzeit gegen Null geht, was späte Swaps zu einem Manipulationsvektor für Marktinitialisierungspreise macht.
- Fehlende Senderprüfung in Hook-Callbacks.
CorkHook.beforeSwaperzwingte nicht, dassmsg.senderderPoolManagerwar, was direkte Aufrufe mit willkürlichen Parametern ermöglichte und es dem Angreifer ermöglichte, den FlashSwap-Ausführungspfad zu spoofen. - Interaktion zwischen Modulen als blinder Fleck. Das ökonomische Design (HIYA-basierte Preisgestaltung) und die Lücke in der Zugriffskontrolle (unauthentifizierter Hook-Callback) befanden sich in separaten Modulen. Ihre Interaktion schuf einen ausnutzbaren Pfad, der bei einer Einzelmodulanalyse wahrscheinlich nicht erkannt worden wäre.
Reference
About BlockSec
BlockSec ist ein Full-Stack Blockchain-Sicherheits- und Krypto-Compliance-Anbieter. Wir entwickeln Produkte und Dienstleistungen, die unseren Kunden helfen, Code-Audits (einschließlich Smart Contracts, Blockchain und Wallets) durchzuführen, Angriffe in Echtzeit abzufangen, Vorfälle zu analysieren, illegale Gelder zu verfolgen und AML/CFT-Verpflichtungen über den gesamten Lebenszyklus von Protokollen und Plattformen zu erfüllen.
BlockSec hat mehrere Blockchain-Sicherheitsarbeiten 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 Milliarden von Kryptowährungen gesichert.
-
Offizielle Website: https://blocksec.com/
-
Offizielles Twitter-Konto: https://twitter.com/BlockSecTeam



