Zum Inhalt springen
Gegr. MMXXVIBd. VI · № 273RSS
Blockchain Breaches

Ein Archiv von Sicherheitsvorfällen im Kryptobereich — Hacks, Exploits, Bridge-Ausfälle und Rug Pulls, dokumentiert mit On-Chain-Belegen.

Dossier № 050Smart-Contract-Bug

Poly Network Exploit

Bug im Cross-Chain-Manager-Vertrag erlaubte Angreifer, den Keeper-Public-Key auszutauschen und 611 Mio. $ von drei Chains abzuziehen — voll zurückgegeben.

Datum
Status
Zurückerlangt

Am 10. August 2021 zog ein Angreifer rund 611 Mio. $ an Tokens aus dem Poly-Network-Cross-Chain-Protokoll über Ethereum, BNB Chain und Polygon ab. Innerhalb von zwei Wochen gab der Angreifer jeden Cent zurück und erhielt eine Belohnung von 500.000 $ und ein Jobangebot.

Was geschah

Poly Network verwendete ein Paar von Cross-Chain-Verträgen — EthCrossChainManager und EthCrossChainData —, um Nachrichten zwischen unterstützten Chains zu übertragen. Der Relayer-Vertrag hatte eine öffentliche Funktion (verifyHeaderAndExecuteTx), die beliebige Daten auf dem Datenvertrag aufrufen konnte, einschließlich der putCurEpochConPubKeyBytes-Funktion des Datenvertrags, die den Keeper-Public-Key setzte.

Durch das Erstellen eines Cross-Chain-Beweises, der zu dieser internen Funktion aufgelöst wurde, rotierte der Angreifer den Keeper-Public-Key zu einem, den er kontrollierte. Ab diesem Punkt konnte jede Cross-Chain-Abhebung von ihm signiert werden.

Folgen

  • Der Angreifer behauptete zunächst, es "zum Spaß" getan zu haben, und begann innerhalb von 24 Stunden mit der Rückgabe von Mitteln, indem er öffentlich mit Poly Network über On-Chain-Nachrichten verhandelte.
  • Alle 611 Mio. $ wurden zurückgegeben. Poly Network bot dem Angreifer öffentlich eine Belohnung von 500.000 $ und die Rolle des "Chief Security Advisor" an.
  • Der Exploit wurde zu einem Lehrbuchbeispiel dafür, warum Cross-Chain-Nachrichten-Executor keine trust-kritischen Zustände mutieren können sollten.

Warum es wichtig ist

Der Poly-Network-Bug lag nicht in der Kryptografie oder im Keeper-Signing — er lag in dem, was der Executor aufrufen durfte. Jede Cross-Chain-Bridge, die administrative Funktionen auf ihrer eigenen Konfiguration aufrufen kann, muss den Executor als privilegierten Aufrufer behandeln.

Quellen & On-Chain-Belege

  1. [01]medium.comhttps://medium.com/@MrToph/the-initial-analysis-of-the-poly-network-hack-c4f8d3b69cb4
  2. [02]twitter.comhttps://twitter.com/PolyNetwork2/status/1425073987164381196
Transaktionen
  • 0xad7a2c70c958fcd3effbf374d0acf3774a9257577625ae4c838e24b0de17602a

Verwandte Einträge