Zurück zum Blog

Die Erstuntersuchung des PolyNetwork-Hacks

Code Auditing
11. August 2021
3 Min. Lesezeit

PolyNetwork wurde gehackt und über 300 Millionen US-Dollar wurden gestohlen. Der Angreifer führte den Angriff auf mehreren Chains durch. In diesem Blog verwenden wir die Angriffstransaktion auf Ethereum (0xd8c1f7424593ddba11a0e072b61082bf3d931583cb75f7843fc2a8685d20033a), um den möglichen Grund für den Hack zu analysieren. Unsere erste Analyse zeigt, dass ein möglicher Grund entweder die Offenlegung des Private Keys, der zum Signieren der Cross-Chain-Nachricht verwendet wird, oder ein Fehler im Signierungsprozess von PolyNetwork sein könnte, der missbraucht wurde, um eine manipulierte Nachricht zu signieren.

Haftungsausschluss: Dieser Blog enthält nur die Ergebnisse unserer ersten Analyse, die auf On-Chain-Daten auf Ethereum basieren. Ohne weitere Informationen von Poly Network können wir unsere Ergebnisse nicht überprüfen.

Update 2021/08/12: Weitere Informationen zeigen, dass die Ursache des Angriffs darin liegt, dass der Keeper vom Angreifer modifiziert wurde (nicht aufgrund der Offenlegung des Private Keys). Wir haben eine weitere Analyse, um die Frage zu beantworten, warum die Transaktion zur Änderung des Keepers überhaupt ausgeführt werden konnte.

Transaktion und Aufrufverfolgung

Wir verwenden unser Transaktionsanalyse-System, um die Spur wiederherzustellen.

Angreifer -> EthCrossChainManager -> EthCrossChainData -> LockProxy -> managerProxyContractforLockProxy

  • 0xc8a65fadf0e0ddaf421f28feab69bf6e2e589963: Angreifer
  • 0x838bf9e95cb12dd76a54c9f9d2e3082eaf928270: EthCrossChainManager
  • 0xcf2afe102057ba5c16f899271045a0a37fcb10f2: EthCrossChainData
  • 0x250e76987d838a75310c34bf422ea9f1ac4cc906: LockProxy
  • 0x5a51e2ebf8d136926b9ca7b59b60464e7c44d2eb: managerProxyContract for LockProxy

Funktionssignaturen:

  • d450e04c (verifyHeaderAndExecuteTx)
  • 69d48074 (getCurEpochConPubKeyBytes)
  • 5ac40790 (getCurEpochStartHeight)
  • 0586763c (checkIfFromChainTxExist)
  • e90bfdcf (markFromChainTxExist(uint64,bytes32))

Der Hauptprozess des Angriffs

Der Hauptprozess des Angriffs besteht darin, dass der Angreifer die signierten Daten an die Funktion verifyHeaderAndExecuteTx() übergeben hat. Diese Funktion dekodiert die Daten und überprüft die Signaturen, mit denen die Daten signiert wurden. Wenn dieser Prozess erfolgreich ist, wird die in der Nachricht angegebene Methode (und die Vertragsadresse) ausgeführt. Während dieses Angriffs wurde die unlock-Funktion des Smart Contracts 0x250e76987d838a75310c34bf422ea9f1ac4cc906 aufgerufen, um Fei an den Angreifer zu transferieren.

Zusammenfassend lässt sich sagen, dass der Angriff auf gültige Parameter zurückzuführen ist, die an die Funktion verifyHeaderAndExecuteTx übergeben wurden. Und die Parameter können den Signaturverifizierungsprozess bestehen. Danach wird die in der Nachricht angegebene Transaktion ausgeführt (ähnlich der willkürlichen Befehlsausführung in der Softwaresicherheit).

Um diesen Prozess besser zu verstehen, stellen wir die kritischen Werte des Aufrufverfolgung wieder her.

Funktion: verifyHeaderAndExecuteTx:

verifySig

unlock

Die Variable des managerProxyContract im LockProxy. Sie stimmt mit dem Wert der Aufruferadresse der unlock-Funktion überein.

Schlussfolgerung

Aus den wiederhergestellten Werten stellen wir fest:

  1. Der Angreifer hat eine gültige signierte Nachricht an die Funktion verifyHeaderAndExecuteTx übergeben.
  2. Der Modifier onlyManagerContract im LockProxy Smart Contract wurde NICHT umgangen.

Basierend auf diesen beiden Beobachtungen vermuten wir, dass:

  1. Der Angreifer möglicherweise die legitimen Schlüssel zum Signieren der Nachrichten besitzt, was darauf hindeutet, dass die Signierschlüssel möglicherweise offengelegt wurden.

Oder

  1. Es gibt einen Fehler im Signierungsprozess von PolyNetwork, der missbraucht wurde, um eine manipulierte Nachricht zu signieren.

Wir verfügen jedoch nicht über weitere Off-Chain-Daten, um unsere Erkenntnisse zu überprüfen. Wir hoffen, dass unsere Analyse für weitere Ermittlungen hilfreich sein kann.

Credits: Yufeng Hu, Siwei Wu, Lei Wu, Yajin Zhou @BlockSec

Twitter: https://twitter.com/BlockSecTeam

Für die neuesten Informationen anmelden
Verluste von rund 5,57 Millionen USD: Exploits bei X100 Freezer und NEM | BlockSec-Wochenrückblick
Security Insights

Verluste von rund 5,57 Millionen USD: Exploits bei X100 Freezer und NEM | BlockSec-Wochenrückblick

Dieser Wochenbericht behandelt zwei Sicherheitsvorfälle auf Ethereum und BNB Chain im Zeitraum 19.10.2026–25.10.2026. Er untersucht eine durch einen Flash Loan finanzierte Übernahme der Governance von X100 Freezer sowie einen Fehler bei der Steuerabrechnung, der einen Liquiditätspool eines NEM-Tokens auf BNB Chain betrifft. Die geschätzten Verluste im Rahmen des Berichts belaufen sich insgesamt auf etwa 5,57 Millionen USD: rund 4,75 Millionen USD aus der exemplarischen X100-Transaktion und rund 820 Tausend USD aus dem Vorfall beim NEM-Pool. Gesondert gemeldete spätere Entnahmen aus X100 sind in der Gesamtsumme nicht enthalten.

Verluste von rund 3,87 Millionen USD: Hacks bei Autheo Network und UNCX | BlockSec Weekly
Security Insights

Verluste von rund 3,87 Millionen USD: Hacks bei Autheo Network und UNCX | BlockSec Weekly

Dieser Wochenbericht behandelt 3 Sicherheitsvorfälle im Zeitraum 12.10.2026–18.10.2026 mit einem geschätzten Gesamtschaden von etwa 3,87 Millionen USD. Bei Autheo Network wurde ein privater Schlüssel kompromittiert; der Schaden betrug rund 1,76 Millionen USD. Qubic Wallet verlor aufgrund einer schwachen Seed-Generierung rund 1,30 Millionen USD. Bei den Smart Token Vesting V2-Verträgen von UNCX Network führte ein Buchführungsfehler auf Ethereum, BNB Chain, Base und Robinhood Chain zu einem Schaden von rund 807 Tausend USD. Die hervorgehobene Analyse zu UNCX erklärt, wie eine fehlerhafte Berechnung der Gesamtanteile Vesting-Tranchen zusammenführte, die mit unterschiedlichen Token-zu-Anteil-Verhältnissen erstellt worden waren, und dadurch überhöhte Entnahmen aus gemeinsamen Pools ermöglichte.

Rund 542.000 $ verloren: MakerDaoBot-Exploit | BlockSec Wochenrückblick
Security Insights

Rund 542.000 $ verloren: MakerDaoBot-Exploit | BlockSec Wochenrückblick

Ethereum, 5.–11.10.2026: 1 Vorfall, ca. 542.000 $ Verlust. Über eine ungeschützte MakerDaoBot-Funktion erhielt ein bösartiger Adapter Zugriff auf Bot-Guthaben, wickelte 4 ETH-A-Auktionen ab und tauschte 200 ETH-A in WETH; 200 ETH gingen an den Angreifer.

Der beste Sicherheitsauditor für Web3

Lassen Sie Design, Code und Geschäftslogik vor dem Launch prüfen. Nach den höchsten Sicherheitsstandards der Branche.

BlockSec-Audit