Back to Blog

Die Retrospektive des Poly Network Hacks aus der Sicht eines Sicherheitsforschers

Code Auditing
August 15, 2021

In diesem Blog möchten wir den gesamten Prozess des Poly Network Hacks überprüfen und die gewonnenen Erkenntnisse diskutieren.

Wir wussten, dass das Poly Network am 10. August 2021 gehackt wurde (wir verwenden in diesem Blog die Zeitzone +8). Es gab jedoch keinen Hinweis darauf, wie der Hack stattgefunden hat und was die eigentliche Ursache des Hacks war. Als Sicherheitsteam haben wir unsere Untersuchung begonnen.

Schritt 1: Finde die Angriffstransaktion

Wir haben die Angriffstransaktion 0xd8c1f7424593ddba11a0e072b61082bf3d931583cb75f7843fc2a8685d20033a in unserem Transaktionsvirtualisierungssystem (https://tx.blocksecteam.com) nachgespielt.

Die Spur ist ziemlich einfach, was sich von anderen Angriffen unterscheidet, die den Preis manipulieren. Sie haben normalerweise sehr komplizierte Funktionsaufrufe (siehe den Popsicle-Hack.).

Schritt 2: Analysiere den Vertragscode

Nachdem wir die Angriffstransaktion erhalten hatten, mussten wir den Quellcode des Vertrags überprüfen. Überraschenderweise hat das Poly Network KEINEN verifizierten Quellcode auf Etherscan. Wir konnten jedoch den veröffentlichten Quellcode auf GitHub finden.

Nach der Überprüfung des Quellcodes haben wir keine offensichtlichen Code-Schwachstellen gefunden. Wir verglichen auch die Angriffstransaktion mit einer legitimen Transaktionstransaktion und stellten fest, dass sie ähnlich sind.

Schritt 3: Stelle die kritischen Zustände wieder her

Dann stellten wir die kritischen Zustände während des Angriffs wieder her. Da der Angriff durch den Aufruf von VerifyHeaderAndExecuteTxEvent ausgelöst wurde, stellten wir mehrere kritische Variablenwerte wieder her, die wir in unserer ersten Analyse geteilt haben [1].

Dabei stellten wir fest, dass es nur einen Keeper gibt (siehe obige Abbildung). Da der Wert aus der Angriffstransaktion stammt und die Angriffstransaktion alle Signaturprüfungen bestanden hat, dachten wir, der potenzielle Grund könnte die Offenlegung des privaten Schlüssels oder ein Fehler im Signierungsprozess des Servers sein [1].

Hier haben wir jedoch einen Fehler gemacht. Die Analyse eines Angriffs ist wie das Schälen einer Zwiebel. Man schält sie Schicht für Schicht, bis man die eigentliche "Wurzel-Wurzel-Wurzel"-Ursache gefunden hat. Zu diesem Zeitpunkt haben wir die Zwiebel nicht weiter geschält, um zu sehen, ob der Keeper geändert wurde!

Schritt 4: Neuer Hinweis

Ein paar Stunden später gaben Kelvin und Slow Mist neue Hinweise auf Twitter und zeigten an, dass der Keeper geändert wurde. Der Änderungsprozess missbrauchte eine Hash-Kollision, um eine mächtige Funktion aufzurufen – einen „smarten“ Hack.

Nun erkannten wir, dass unsere erste Analyse unvollständig war. Basierend auf den neuesten Informationen haben wir die Transaktion nachgespielt, die den Keeper geändert hat. Immer noch ist die Spur sehr einfach.

Aber denken Sie daran, dass während dieser Transaktion vier Keeper (anstelle von einem) vorhanden sind. Alle diese Schlüssel sind dieselben wie bei anderen legitimen Transaktionen – was bedeutet, dass die Schlüssel legitim sind. Hier stellt sich die Frage: Warum konnte die Transaktion, die den Keeper ändert, überhaupt auf der Kette platziert und ausgeführt werden?

Schritt 5: Ursprungstransaktion lokalisieren

Wir haben dann versucht, die Ursprungstransaktion zu lokalisieren, da das Poly Network eine Cross-Chain-Brücke ist. Es sollte irgendwo eine Ursprungstransaktion existieren. Dies haben wir getan, indem wir die kritische Variable dekodiert haben (wie im folgenden Bild gezeigt). Sie zeigt die Transaktions-Hash der Quellkette und der Poly-Kette.

Es gibt einen Trick, der nirgendwo anders erwähnt wurde. Der Tx-Hash-Wert in der Variablen hat eine andere Darstellung als der offizielle Wert in der Poly-Kette. Zum Beispiel ist der Tx-Hash der Poly-Kette in der Abbildung 0x80cc978479eb082e1e656993c63dee7a5d08a00dc2b2aab88bc0e465cfa0721a. Aber im Poly-Kettenbrowser ist der Hash-Wert 1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80 (sehen Sie den Unterschied?). Wir teilten unsere Erkenntnisse am 11. August um 16:55 Uhr in der EthereumSecurity TG-Gruppe.

Schritt 6: Ursache lokalisieren

Aber immer noch können wir die Frage nicht beantworten: „Warum konnte die Transaktion zur Änderung des Keepers auf der Kette gepackt werden?“ Um diese Frage zu beantworten, begannen wir auf der Ontology-Kette und fanden den Transaktionsfluss:

Ontology-Transaktion -> Ontology-Relayer -> Poly-Kette -> Ethereum-Relayer -> Ethereum

Dann lasen wir den Quellcode der Ontology-Kette und der Relayer. Nach ein paar Stunden stellten wir fest, dass der Ontology-Relayer nicht über genügend Validierung für die Cross-Chain-Transaktion verfügte. Dies konnte dazu führen, dass die bösartige Transaktion auf der Poly-Kette gepackt wurde. Danach war das System kompromittiert.

Nach interner Diskussion und Herausforderung veröffentlichten wir unsere Erkenntnisse am 12. August um 02:41 Uhr auf Twitter und Medium [3].

Lektionen

  • Security by Design. Sicherheit sollte im gesamten Prozess eines DeFi-Projekts eine Rolle spielen. Nutzer vertrauen ihr Geld dem Projekt an. Im Gegenzug sollte das Projekt das Vertrauen verdienen. Leider sahen wir die Ignoranz des Poly Networks bezüglich Sicherheit. Beispielsweise ist der Mangel an Validierung eine alte Sicherheitslücke, die ich in meinem Grundstudium gelehrt habe.

  • Es gibt keinen verifizierten Quellcode für ein DeFi-Projekt mit mehr als 600 Millionen TVL. Die Basis der dezentralen Infrastruktur ist Vertrauen und die Grundlage des Vertrauens ist Transparenz. Leider sind die Nutzer bereit, ihr Geld in ein Blackbox-Projekt zu stecken, was mich überrascht und beunruhigt. Wie die Sicherheitswahrnehmung der Nutzer verbessert werden kann, erfordert wahrscheinlich eine neue Lösung.

Referenz

[1]https://blocksecteam.medium.com/the-initial-analysis-of-the-polynetwork-hack-270ac6072e2a

[2]https://twitter.com/kelvinfichter/status/1425290462076747777

[3]https://blocksecteam.medium.com/the-further-analysis-of-the-poly-network-attack-6c459199c057

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

BlockSec (@BlockSecTeam) / Twitter

Sign up for the latest updates
Building a Secure Stablecoin Payment Network: BlockSec Partners with Morph
Partnership

Building a Secure Stablecoin Payment Network: BlockSec Partners with Morph

BlockSec has partnered with Morph as an official audit partner for the $150M Morph Payment Accelerator. By offering exclusive discounts on smart contract audits and penetration testing, BlockSec provides institutional-grade security to payment builders, ensuring a safe and resilient foundation for the future of global stablecoin payments.

Weekly Web3 Security Incident Roundup | Mar 9 – Mar 15, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Mar 9 – Mar 15, 2026

This BlockSec weekly security report covers eight DeFi attack incidents detected between March 9 and March 15, 2026, across Ethereum and BNB Chain, with total estimated losses of approximately $1.66M. Incidents include a $1.01M AAVE incorrect liquidation caused by oracle misconfiguration, a $242K exploit on the deflationary token MT due to flawed trading restrictions, a $149K exploit on the burn-to-earn protocol DBXen from `_msgSender()` and `msg.sender` inconsistency, and a $131K attack on AM Token exploiting a flawed delayed-burn mechanism. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Venus Thena (THE) Incident: What Broke and What Was Missed

Venus Thena (THE) Incident: What Broke and What Was Missed

On March 15, 2026, an attacker bypassed the THE (Thena) supply cap on Venus Protocol (BNB Chain) through a donation attack, inflating a collateral position to 3.67x the intended limit and borrowing ~$14.9M in assets. Both sides lost money on-chain: Venus was left with ~$2.15M in bad debt after 254 liquidation bots competed across 8,048 transactions, while the attacker retained only ~$5.2M against a $9.92M investment. This deep dive examines what broke across three lines of defense (exposure limits, collateral valuation, and liquidation) and the monitoring gaps that left months of on-chain warning signals unacted upon.

Best Security Auditor for Web3

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

BlockSec Audit