Back to Blog

PolyNetwork 駭客攻擊初步分析

Code Auditing
August 11, 2021
3 min read

PolyNetwork 遭到駭客攻擊,超過 3 億美元資產被盜。攻擊者在多個鏈上實施了此次攻擊。在本部落格中,我們使用以太坊上的攻擊執行交易(0xd8c1f7424593ddba11a0e072b61082bf3d931583cb75f7843fc2a8685d20033a)來分析此次駭客攻擊的可能原因。我們的初步分析顯示,一個可能的原因是簽署跨鏈訊息的私鑰洩漏,或者是 PolyNetwork 的簽署流程存在漏洞,導致攻擊者可以簽署偽造的訊息。

免責聲明:本部落格僅包含我們基於以太坊鏈上數據的初步分析結果。如果沒有來自 Poly Network 的進一步資訊,我們無法驗證我們的發現。

更新 2021/08/12:進一步的資訊顯示,此次攻擊的原因是 Keeper 被攻擊者修改(而非私鑰洩漏所致)。我們進行了更深入的分析,以回答「為什麼修改 Keeper 的交易能夠成功執行」的問題。

交易與呼叫追蹤

我們使用我們的交易分析系統來還原追蹤過程。

攻擊者 -> EthCrossChainManager -> EthCrossChainData -> LockProxy -> managerProxyContractforLockProxy

  • 0xc8a65fadf0e0ddaf421f28feab69bf6e2e589963: 攻擊者
  • 0x838bf9e95cb12dd76a54c9f9d2e3082eaf928270: EthCrossChainManager
  • 0xcf2afe102057ba5c16f899271045a0a37fcb10f2: EthCrossChainData
  • 0x250e76987d838a75310c34bf422ea9f1ac4cc906: LockProxy
  • 0x5a51e2ebf8d136926b9ca7b59b60464e7c44d2eb: LockProxy 的 managerProxyContract

函式簽章:

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

攻擊的主要流程

攻擊的主要流程是攻擊者將簽名的數據傳遞給 verifyHeaderAndExecuteTx() 函式。該函式會對數據進行解碼,並驗證用於簽署數據的簽章。如果此過程通過,訊息中指定的函式(以及合約地址)就會被執行。在這次攻擊中,智慧合約 0x250e76987d838a75310c34bf422ea9f1ac4cc906 的 unlock 函式被調用,將 Fei 代幣轉移給了攻擊者。

總之,此次攻擊歸因於傳遞給 verifyHeaderAndExecuteTx 函式的參數是有效的,且這些參數能通過簽章驗證過程。此後,訊息中指定的交易便會執行(類似於軟體安全中的任意指令執行)。

為了更好地理解這個過程,我們還原了呼叫追蹤中的關鍵數值。

函式:verifyHeaderAndExecuteTx:

verifySig

unlock

LockProxy 中的 managerProxyContract 變數。它與 unlock 函式的呼叫者地址相符。

結論

從還原的數值中,我們發現:

  1. 攻擊者向 verifyHeaderAndExecuteTx 函式提供了有效的簽名訊息。
  2. LockProxy 智慧合約中的 onlyManagerContract 修飾符並被繞過。

基於這兩點觀察,我們懷疑:

  1. 攻擊者可能擁有簽署訊息的合法金鑰,這意味著簽署金鑰可能已洩漏。

或者

  1. PolyNetwork 的簽署流程存在漏洞,導致其被濫用以簽署偽造的訊息。

然而,我們沒有更多鏈下數據來驗證我們的發現。希望我們的分析能對後續調查有所幫助。

貢獻者:Yufeng Hu, Siwei Wu, Lei Wu, Yajin Zhou @BlockSec

Twitter: https://twitter.com/BlockSecTeam

Sign up for the latest updates
Harmony 跨鏈 ONE 鑄幣事件 + 約4700萬美元金鑰洩露損失 | BlockSec
Security Insights

Harmony 跨鏈 ONE 鑄幣事件 + 約4700萬美元金鑰洩露損失 | BlockSec

2026年8月10日至16日期間,共5起重大安全事件,量化損失約4700萬美元。深度分析聚焦Harmony Layer-1鏈實作缺陷:跨分片收據重放導致原生ONE被未授權鑄造,目的分片以未驗證的MerkleProof.ShardID及BlockNum欄位判定收據已花費標記,而非依簽署來源標頭,使已入帳收據可重放而無對應來源分片扣款。約偽造3.01兆ONE,惟其名目價值遠超代幣市值,無法變現亦未確認實現損失,故Harmony不計入總額;約4700萬美元來自私鑰洩露(未知巨鯨錢包約2500萬、Kite約1400萬、Coinsbuy約790萬)及Fox業務邏輯缺陷(約11.7萬)。

~$160萬美元損失:Moke代幣、LpdFi遭攻擊利用 | BlockSec週報
Security Insights

~$160萬美元損失:Moke代幣、LpdFi遭攻擊利用 | BlockSec週報

2026年8月3-9日當週,BNB Chain發生2起重大安全事件,總損失約160萬美元,均源於價格操縱。LpdFi事件(約69.7萬美元)重複使用同一可操縱的PancakeSwap流動池儲備進行訂單估值和利息贖回,使攻擊者虛增本金並操控池子以索取超額利息。Moke Token事件(約90.6萬美元)結合可操縱現貨價格與重複LP分紅計算,多次領取虛增的MOKE及BNB分紅。

COLDCARD事件:當錢包的「隨機」助記詞並不隨機
Security Insights

COLDCARD事件:當錢包的「隨機」助記詞並不隨機

COLDCARD固件存在靜默構建整合漏洞,導致比特幣種子生成回退至軟件RNG,其弱隨機性使錢包種子可被離線破解。由於弱點存在於種子本身,固件更新無法修復;截至2026年8月7日,已確認損失達1,405 BTC(約9,100萬美元),私下估計高達2,055 BTC。

Best Security Auditor for Web3

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

BlockSec Audit
PolyNetwork 駭客攻擊初步分析