Back to Blog

Nr. 2 Bybit-Zwischenfall: Eine Web2-Sicherheitslücke ermöglicht den größten Krypto-Hack der Geschichte

Code Auditing
February 9, 2026
5 min read

Am 21. Februar 2025 verlor Bybit etwa 1,5 Milliarden US-Dollar, nachdem ein Angreifer durch Social Engineering den Computer eines Safe{Wallet}-Entwicklers kompromittiert hatte. Der Angreifer schleuste schädlichen JavaScript-Code in den AWS S3-Bucket von Safe{Wallet} ein und zielte dabei gezielt auf die Transaktionen von Bybit ab. Der eingeschleuste Code veränderte den Inhalt der Transaktion während des Signiervorgangs: Die Benutzeroberfläche von Safe{Wallet} zeigte eine legitime Transaktion an, während die tatsächliche Nutzlast (Payload), die an die Ledger-Geräte der Unterzeichner gesendet wurde, den Safe-Vertrag von Bybit auf eine bösartige Implementierung aktualisierte und dem Angreifer die volle Kontrolle übertrug. Sobald die Transaktion signiert und ausgeführt wurde, räumte der Angreifer alle Vermögenswerte aus dem Vertrag ab. Eine detaillierte technische Analyse finden Sie in unserem früheren Bericht [1].

Hintergrund

Safe{Wallet} (auch bekannt als GnosisSafe) ist eine Multisig-Wallet-Infrastruktur, die ein n-von-m-Modell verwendet: Für die Ausführung einer Transaktion sind mindestens n Signaturen von insgesamt m Unterzeichnern erforderlich.

Jede Safe-Wallet wird als Proxy-Vertrag bereitgestellt. Zwei Speichervariablen sind für diesen Vorfall zentral:

  • masterCopy (Slot 0): die Adresse des Implementierungsvertrags. Dieser Vertrag enthält die gesamte Ausführungslogik, einschließlich der Signaturprüfung und der Upgrade-Mechanismen. Der Proxy delegiert alle Aufrufe via delegatecall an die masterCopy.
  • threshold (Slot 4): die erforderliche Mindestanzahl an Signaturen (n). Bei Bybits Safe lag dieser Wert bei 3.

Da der Proxy delegatecall verwendet, wird jede Funktion, die auf der masterCopy aufgerufen wird, im Speicherkontext des Proxys ausgeführt. Das bedeutet, dass ein delegatecall-Ziel die masterCopy an Slot 0 direkt überschreiben und damit die gesamte Implementierung in einer einzigen Transaktion ersetzen kann.

Schwachstellenanalyse

Der Angriffspfad durchlief drei Ebenen des Systems, wobei jede eine strukturelle Bedingung bot, die der Angreifer ausnutzte:

Frontend-Bereitstellungsmodell. Das JavaScript des Safe{Wallet}-Frontends wurde von einem AWS S3-Bucket bereitgestellt. In dieser Architektur kann jeder mit Schreibzugriff auf den Bucket den Code verändern, der Transaktionen für Unterzeichner erstellt. Mechanismen zur Integritätsprüfung wie Subresource Integrity (SRI)-Hashes oder Code-Signierung können dieses Risiko mindern, sind jedoch für die meisten dApp-Frontends noch kein Standard. Der Angreifer erlangte durch den kompromittierten Entwickler-Computer Schreibzugriff und änderte im Stillen das bereitgestellte JavaScript.

Diskrepanz zwischen UI-Anzeige und Signatur-Payload. Das eingeschleuste JavaScript zeigte eine legitim aussehende Transaktion auf der Safe{Wallet}-Benutzeroberfläche an, während gleichzeitig eine andere Nutzlast an die Ledger-Hardware-Wallets gesendet wurde. Die auf dem Ledger-Bildschirm angezeigten Transaktionsdetails unterschieden sich von denen in der UI, doch die Interpretation von rohen Transaktionsdaten auf einem Hardware-Wallet-Bildschirm ist nicht trivial, insbesondere bei komplexen Multisig-Vorgängen. Diese Lücke ermöglichte es dem Angreifer, drei gültige Signaturen für die bösartige Nutzlast zu sammeln.

Proxy-Upgrade-Modell. Wie im Hintergrund beschrieben, führt delegatecall den Code des Ziels im Speicherkontext des Proxys aus. Die Safe-Proxy-Architektur leitet alle Aufrufe über einen einzigen masterCopy-Zeiger an Slot 0. Das Überschreiben dieses Zeigers leitet den Proxy in einer einzigen Transaktion auf eine völlig andere Implementierung um, einschließlich deren Signaturprüfungslogik. Das n-von-m-Modell regelt, wer eine Transaktion einleiten darf, aber sobald eine Transaktion genehmigt und ausgeführt wurde, kann sie die Implementierung selbst ändern. Wenn die neue Implementierung die Signaturprüfung entfernt, ist der Multisig-Schutz für alle nachfolgenden Transaktionen effektiv aufgehoben.

Angriffsanalyse

Der Angriff verlief in drei Schritten: Schleusen von schädlichem Code, Austausch der Implementierung und Diebstahl von Vermögenswerten.

Schritt 1: Einschleusen von schädlichem Code

Der Angreifer kompromittierte den Computer eines Safe{Wallet}-Entwicklers und schleuste schädliches JavaScript in den AWS S3-Bucket ein, der das Frontend bereitstellt. Der injizierte Code zielte speziell auf Transaktionen von Bybits Safe-Adresse ab. Laut dem CEO von Bybit, Ben Zhou [2], zeigte die Safe{Wallet}-UI eine legitime Transaktion an, während eine andere Nutzlast an die Ledger-Geräte der Unterzeichner gesendet wurde. Die Unterzeichner genehmigten die Transaktion wie in der UI angezeigt und gaben dem Angreifer so drei gültige Signaturen für die bösartige Nutzlast.

Schritt 2: Austausch der Implementierung

Der Angreifer reichte die bösartige Transaktion mit den drei gesammelten Signaturen ein. Der Safe-Proxy delegierte den Aufruf an die masterCopy, deren execTransaction() die Signaturen validierte und dann die Transaktions-Payload ausführte: ein delegatecall an den Vertrag des Angreifers (0x962214...5c7242). Da dieser delegatecall im Speicherkontext des Proxys läuft, überschrieb die transfer()-Funktion des Angreifers den Wert von masterCopy an Slot 0 mit einer bösartigen Implementierungsadresse (0xbDd077...9516). Von diesem Zeitpunkt an wurden alle Aufrufe an den Safe-Vertrag an den Code des Angreifers delegiert.

Schritt 3: Diebstahl von Vermögenswerten

Da masterCopy nun auf die Implementierung des Angreifers zeigte, galt die Multisig-Anforderung nicht mehr. Der Angreifer rief SweepERC20() und SweepETH() direkt auf dem Safe-Vertrag auf. Diese Funktionen, die im Implementierungsvertrag des Angreifers definiert waren, transferierten alle gehaltenen Vermögenswerte ohne jegliche Signaturprüfung. Es wurden fünf Abzugstransaktionen durchgeführt, die sich auf insgesamt ca. 1,5 Milliarden US-Dollar beliefen.

Zugehörige Verträge und Transaktionen

Typ Beschreibung Adresse / Hash
Vertrag Bybits Safe-Vertrag 0x1Db92e2EeBC8E0c075a02BeA49a2935BcD2dFCF4
Vertrag Der ursprüngliche masterCopy-Vertrag 0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F
Vertrag Der bösartige masterCopy-Vertrag 0xbDd077f651EBe7f7b3cE16fe5F2b025BE2969516
Vertrag Der Vertrag des Angreifers (d. h. transfer()) 0x96221423681A6d52E184D440a8eFCEbB105C7242
Transaktion Transaktion ersetzte den masterCopy-Vertrag 0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882
Transaktion Transaktion zog 15.000 cmETH ab 0x847b8403e8a4816a4de1e63db321705cdb6f998fb01ab58f653b863fda988647
Transaktion Transaktion zog 90.375 stETH ab 0xa284a1bc4c7e0379c924c73fcea1067068635507254b03ebbbd3f4e222c1fae0
Transaktion Transaktion zog 8.000 mETH ab 0xbcf316f5835362b7f1586215173cc8b294f5499c60c029a3de6318bf25ca7b20
Transaktion Transaktion zog 401.346 ETH ab 0xb61413c495fdad6114a7aa863a00b2e3c28945979a10885b12b30316ea9f072c
Transaktion Transaktion zog 90 USDT ab 0x25800d105db4f21908d646a7a3db849343737c5fba0bc5701f782bf0e75217c9

Zusammenfassung

Dieser Vorfall hat gezeigt, wie eine Kompromittierung der Off-Chain-Infrastruktur zu katastrophalen On-Chain-Verlusten führen kann. Der Angreifer verknüpfte einen Web2-Einbruch, eine Frontend-Manipulation und ein Proxy-Upgrade zu einer einzigen Angriffskette, die den Multisig-Schutz umging, ohne dabei eine On-Chain-Schwachstelle auszunutzen.

Wichtige Erkenntnisse:

  • Die Integrität des Frontends verdient die gleiche Aufmerksamkeit wie die On-Chain-Sicherheit. Die Angriffskette begann auf der Ebene der Frontend-Bereitstellung. Da dApps zunehmend hochwertige Transaktionen vermitteln, wird der Schutz von Frontend-Code durch Integritätsprüfungen (SRI, Code-Signing, reproduzierbare Builds) und die Überwachung auf unbefugte Änderungen zu einer grundlegenden Anforderung.
  • Die Überprüfung durch Hardware-Wallets bleibt in der Praxis schwierig. Hardware-Wallets können zwar die tatsächliche Signatur-Nutzlast anzeigen, aber die Interpretation komplexer Multisig-Transaktionsdaten auf einem kleinen Bildschirm ist eine bekannte Herausforderung für die Benutzerfreundlichkeit. Die Verbesserung der Lesbarkeit von Transaktionszusammenfassungen auf dem Gerät ist ein ungelöstes Problem für das Wallet-Ökosystem.
  • Proxy-Upgrade-Mechanismen sind Ziele mit hoher Hebelwirkung. Die Safe-Proxy-Architektur leitet die gesamte Logik über einen einzigen aufrüstbaren Zeiger. Jeder Mechanismus, der einen einstufigen Implementierungsaustausch ermöglicht, konzentriert das Risiko. Das Hinzufügen einer Zeitsperre (Timelock), eines zweiten Bestätigungsschritts oder eines unabhängigen Vormunds für Upgrades kann die Auswirkungen einer einzelnen kompromittierten Transaktion verringern.

Referenz

  1. BlockSec: Tiefgehende Analyse des Bybit 1,5 Mrd. USD Hacks

  2. Bybit CEO Ben Zhou X-Übertragung


Über BlockSec

BlockSec ist ein Full-Stack Blockchain-Sicherheits- und Crypto-Compliance-Anbieter. Wir entwickeln Produkte und Dienstleistungen, die Kunden dabei helfen, Code-Audits durchzuführen (einschließlich Smart Contracts, Blockchain und Wallets), Angriffe in Echtzeit abzufangen, Vorfälle zu analysieren, illegale Gelder zurückzuverfolgen und AML/CFT-Verpflichtungen über den gesamten Lebenszyklus von Protokollen und Plattformen hinweg zu erfüllen.

BlockSec hat mehrere Blockchain-Sicherheitspapiere auf renommierten Konferenzen veröffentlicht, mehrere Zero-Day-Angriffe auf DeFi-Anwendungen gemeldet, zahlreiche Hacks blockiert, um mehr als 20 Millionen Dollar zu retten, und Milliarden an Kryptowährungen abgesichert.

Best Security Auditor for Web3

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

BlockSec Audit