Back to Blog

Wiederbesuch der Wurmloch-Angriffe

Code Auditing
March 22, 2022
5 min read

1. Hintergrund

Wormhole, auch bekannt als Einstein-Rosen-Brücke, ist eine spekulative Struktur, die weit entfernte Punkte in der Raumzeit verbindet. In der Welt der Blockchain wird Wormhole als Brücke zwischen verschiedenen Ketten (z. B. Solana und Ethereum verwendet. Benutzer können mit Wormhole tokenisierte Vermögenswerte über Blockchains hinweg übertragen.

Am 2. Februar 2022 wurde Wormhole gehackt und der Angreifer konnte 120.000 Wrapped Ether im Wert von 320 Millionen US-Dollar prägen, was den zweitgrößten Verlust in der DeFi-Geschichte nach Poly Network darstellt.

2. Wie Wormhole funktioniert

Wormhole funktioniert, indem es die auf jeder Kette ausgestrahlten Nachrichten überwacht. Die überwachte Nachricht wird an die Zielkette weitergeleitet, damit ein Cross-Chain-Kommunikationsprotokoll aufgebaut werden kann.

Die naheliegende Frage ist, wie garantiert werden kann, dass die überwachte Nachricht vertrauenswürdig ist. Um dieses Problem zu lösen, führt Wormhole 19 zusätzliche Knoten ein, die als "Guardians" bezeichnet werden. Die aktuelle Guardian-Gruppe kann im Wormhole Explorer eingesehen werden. Jeder Guardian kann die überwachte Nachricht unabhängig verifizieren und die Nachricht signieren.

Bei Wormhole ist die Nachricht im VAA-Format organisiert. Das VAA besteht aus zwei Teilen. Einer ist der Header, der die Signaturen der Guardians sammelt. Der andere ist der Body, der Informationen für die Zielkette, die Nachrichtennutzlast usw. enthält.

Sobald die Signaturen der Guardians einen Konsensschwellenwert erreichen, kann das VAA auf der Kette veröffentlicht werden.

Zusammenfassend sind die Guardians für die Integrität der übertragenen Nachricht verantwortlich.

3. Token-Brücke

Nachdem erklärt wurde, wie Nachrichten zwischen verschiedenen Ketten übertragen werden, ist es nicht schwer zu verstehen, wie die Token-Brücke, die die Hauptanwendung in Wormhole darstellt, funktioniert.

Um Token von Kette A nach Kette B zu übertragen. Wormhole sperrt die Token auf A und prägt sie auf B. Das ist die grobe Idee. In der Praxis lässt sich dies in drei Schritte unterteilen. Erstens werden die Token auf Kette A gesperrt. Zweitens wird die Nachricht, dass die Token auf Kette A auf Kette B übertragen werden sollen, gesendet. Drittens empfängt Kette B die Nachricht und die entsprechenden Token werden geprägt. Alles ist erledigt.

4. Solana-Anweisungen

In Solana besteht eine Transaktion aus mehreren Anweisungen. Jede Anweisung enthält eine Programm-ID, Konten und die Daten. Die Programm-ID repräsentiert das Programm (einen Smart Contract), das die Anweisung verarbeitet. Das Programm interpretiert die Daten und arbeitet mit den bereitgestellten Konten.

5. Der Wormhole-Angriff

Kurz gesagt, der Angreifer prägte 120.000 ETH auf Solana, ohne Vermögenswerte auf Ethereum zu sperren. Die Transaktion ist hier.

Somit stellt sich die Frage, wie der Angreifer in der Lage war, die 120.000 ETH auf Solana zu prägen. Lassen Sie uns die Schritte detaillieren. Um den Token zu prägen, wird die Anweisung complete_wrapped aufgerufen. Diese Anweisung empfängt mehrere Adressen, und die dritte ist die Adresse, die die signierte Nachricht speichert. Bevor die 120.000 ETH geprägt werden, sollte Kette B (d. h. Solana) die signierte Nachricht (d. h. VAA) erhalten, die besagt, dass 120.000 ETH auf Kette A (d. h. Ethereum) gesperrt wurden.

Um die Nachricht zu posten, wird post_vaa in post_vaa.rs aufgerufen. Folglich wird ein Konto zum Speichern der Nachricht erstellt. Allerdings prüft post_vaa die Signaturen der Guardians nicht. Stattdessen prüft verify_signaures in veryify_signatures.rs die Signaturen.

Das vierte Konto, das an verify_signatures übergeben wird, ist das System-Anweisungskonto. Lassen Sie uns nun untersuchen, wie verify_signatures funktioniert.

Bei Zeile 103 wird die Funktion load_instruction_at aufgerufen, um die zuvor ausgeführte Anweisung secp_ix zu laden. secp_ix ruft die Secp256k1-Signaturverifizierungsfunktion auf. Somit prüft verify_signatures die Signaturen, indem es die zuvor ausgeführte Anweisung secp_ix prüft. Haben Sie jetzt alles verstanden? Die Funktion load_instruction_at prüft nicht, wo die Anweisungen geladen werden sollen!!! Es wird erwartet, dass die Anweisung von Sysvar:Instructions geladen wird.

Das vierte Konto der Angriffstransaktion ist jedoch 2tHS1cXX2h1KBEaadprqELJ6sV9wLoaSdX68FqsrrZRd und nicht Sysvar:Instructions. In diesem Fall hat der Angreifer den Signaturverifizierungsprozess erfolgreich umgangen. Wormhole glaubte, die Verifizierung sei bestanden und die Nachricht wurde auf der Kette veröffentlicht, was zur Prägung von 120K ETH führte, ohne etwas zu sperren!

Werfen wir einen Blick auf eine legale Verifizierungs-Anweisung. Diese Transaktion besteht aus zwei Anweisungen. Die erste ruft die Secp256k1-Verifizierungsfunktion auf, während die zweite die verify_signatures-Anweisung aufruft. Beachten Sie, dass das vierte Konto hier Sysvar:Instructions ist.

Nach der Prägung der 120.000 ETH konnte der Angreifer diese auf Ethereum zurückziehen und in andere Token umwandeln, um den Gewinn zu erzielen.

6. Patch

Wie im Repo erwähnt, ist seit Version 1.8.0 load_instruction_at unsicher und die Adresse der Sysvar-Konten wird nicht überprüft. Stattdessen wird load_instruction_at_checked empfohlen.

7. Unsere Gedanken

  • Entwickler sollten mit den von ihnen verwendeten externen Funktionen sehr vertraut sein.
  • Achten Sie weiterhin auf wichtige Änderungen der verwendeten Bibliotheken. Wenn sich die Bibliothek ändert, muss der Code, der die Bibliothek verwendet, möglicherweise geändert werden.
  • Der Bibliotheksbetreuer sollte sich der potenziellen Risiken für spezifische Änderungen bewusst sein und die gesamte Community rechtzeitig benachrichtigen. Das bloße Hinzufügen von Annotationen reicht möglicherweise nicht aus.
  • Ihr Vertragscode muss überprüft werden, wenn die Versionen der Bibliothek und des Codes geändert werden.

Über BlockSec

BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit anerkannter Sicherheitsexperten gegründet wurde. Das Unternehmen setzt sich für die Verbesserung der Sicherheit und Benutzerfreundlichkeit der aufkommenden Web3-Welt ein, um deren Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Dienstleistungen für die Sicherheitsüberprüfung von Smart Contracts und EVM-Ketten an, die Phalcon-Plattform für die sichere Entwicklung und proaktive Bedrohungsabwehr, die MetaSleuth-Plattform für die Geldverfolgung und Untersuchung sowie die MetaSuites-Erweiterung für Web3-Entwickler, um effizient in der Krypto-Welt zu surfen.

Bis heute hat das Unternehmen über 300 angesehene Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zweistellige Millionenbeträge erhalten.

Offizielle Website: https://blocksec.com/

Offizielles Twitter-Konto: https://twitter.com/BlockSecTeam

Sign up for the latest updates
The Decentralization Dilemma: Cascading Risk and Emergency Power in the KelpDAO Crisis
Security Insights

The Decentralization Dilemma: Cascading Risk and Emergency Power in the KelpDAO Crisis

This BlockSec deep-dive analyzes the KelpDAO $290M rsETH cross-chain bridge exploit (April 18, 2026), attributed to the Lazarus Group, tracing a causal chain across three layers: how a single-point DVN dependency enabled the attack, how DeFi composability cascaded the damage through Aave V3 lending markets to freeze WETH liquidity exceeding $6.7B across Ethereum, Arbitrum, Base, Mantle, and Linea, and how the crisis forced decentralized governance to exercise centralized emergency powers. The article examines three parameters that shaped the cascade's severity (LTV, pool depth, and cross-chain deployment count) and provides an exclusive technical breakdown of Arbitrum Security Council's forced state transition, an atomic contract upgrade that moved 30,766 ETH without the holder's signature.

Weekly Web3 Security Incident Roundup | Apr 13 – Apr 19, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Apr 13 – Apr 19, 2026

This BlockSec weekly security report covers four attack incidents detected between April 13 and April 19, 2026, across multiple chains such as Ethereum, Unichain, Arbitrum, and NEAR, with total estimated losses of approximately $310M. The highlighted incident is the $290M KelpDAO rsETH bridge exploit, where an attacker poisoned the RPC infrastructure of the sole LayerZero DVN to fabricate a cross-chain message, triggering a cascading WETH freeze across five chains and an Arbitrum Security Council forced state transition that raises questions about the actual trust boundaries of decentralized systems. Other incidents include a $242K MMR proof forgery on Hyperbridge, a $1.5M signed integer abuse on Dango, and an $18.4M circular swap path exploit on Rhea Finance's Burrowland protocol.

Weekly Web3 Security Incident Roundup | Apr 6 – Apr 12, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Apr 6 – Apr 12, 2026

This BlockSec weekly security report covers four DeFi attack incidents detected between April 6 and April 12, 2026, across Linea, BNB Chain, Arbitrum, Optimism, Avalanche, and Base, with total estimated losses of approximately $928.6K. Notable incidents include a $517K approval-related exploit where a user mistakenly approved a permissionless SquidMulticall contract enabling arbitrary external calls, a $193K business logic flaw in the HB token's reward-settlement logic that allowed direct AMM reserve manipulation, a $165.6K exploit in Denaria's perpetual DEX caused by a rounding asymmetry compounded with an unsafe cast, and a $53K access control issue in XBITVault caused by an initialization-dependent check that failed open. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit