返回部落格

揭露以太坊工作量證明(EthereumPoW)上的「訊息」重放攻擊

Code Auditing
2022年9月19日
閱讀約 5 分鐘

2022 年 9 月 16 日,我們檢測到部分攻擊者通過在 EthereumPoW(即 PoW 鏈)上重放 PoS 鏈的訊息(即調用數據,calldata),成功竊取了大量 ETHW。 本次攻擊的根本原因是 PoW 鏈上的 Omni Bridge 使用了舊的 chainId,且未正確驗證跨鏈訊息的實際 chainId。

我們隨即聯繫了 EthereumPoW 的官方團隊。 該團隊展現了積極應對的意願,並已嘗試 與 Omni Bridge 進行溝通。

然而,由於隨後觀察到越來越多的攻擊行為,我們認為有必要向公眾通報此風險,因此我們於 2022 年 9 月 18 日發布了 預警。

鑒於目前對於這些攻擊存在一些誤解(例如認為是重放交易而非重放消息),我們希望通過本報告進行詳細剖析以釐清事實。

攻擊分析

以下是攻擊交易的範例:

請注意,這兩筆交易有所不同,但它們的 調用數據(即輸入數據,calldata)完全相同:

0x23caab4900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000011500050000a7823d6f1e31569f51861e345b30c6bebf70ebe7000000000000e0f6f6a78083ca3e2a662d6dd1703c939c8ace2e268d88ad09518695c6c3712ac10a214be5109a655671000927c00101806401867f7a4d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a6439ca0fcba1d0f80df0be6a17220fed9c9038a00000000000000000000000000000000000000000000000ad78ebc5ac62000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001482faed2da812d2e5cced3c12b3baeb1a522dc67700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105041c1b1c1c981df6cdaf073d55b78d7f0c7e2b421a569bff677a9464d1d5203672d7b5a3d6af658d14ebc11c26f2547fd0aed01750cca58753a0a79b297bad8a62a71eb6b7ac2099611604eff316e7fe733e9981c1b3890cb04ff9d43612e6f2687227f0226cfa27e4b6cd96a10865e04aa9e0f369dda7548771a094f69bf0a9fa6c27257e22d2b1bbb84beb52ad3966592037b328d352fce375a1fa75cb3fbfd18166f4177a19ad2cc74ce67da68f5ce17b857e6382c3ebf20f76482534135f426f4a74222daa07d9f401cb8baca4339ecd44e285df0e0cb88447a31d08b673cecc67d22c7e6e0ce5afd2ac9439c5a8b68f05077b850cdfdfb79cdaefc5b103bb69360944000000000000000000000000000000000000000000000000000000

這僅僅是調用 safeExecuteSignaturesWithAutoGasLimit 函數的輸入數據。

很明顯,攻擊者(0x82fae)首先通過 Gnosis 鏈的 Omni bridge 轉移了 200 WETH,然後在 PoW 鏈上重放了 相同的消息,並額外獲得了 200 ETHW。 通過這種操作,部署在 PoW 鏈上的橋接合約餘額將被耗盡。

漏洞分析

在分析了 Omni bridge 的 原始碼 後,我們發現合約中確實存在驗證 chainId 的邏輯:

    function _isDestinationChainIdValid(uint256 _chainId) internal returns (bool res) {
        return _chainId == sourceChainId();
    }

遺憾的是,此合約中用於驗證的 chainId 來源於名為 unitStorage 的存儲空間:

    /**
     * Internal function for retrieving chain id for the source network
     * @return chain id for the current network
     */
    function sourceChainId() public view returns (uint256) {
        return uintStorage[SOURCE_CHAIN_ID];
    }

它並非透過 EIP-1344 提出的 CHAINID 操作碼所取得的實際 chainId。 這可能是因為該代碼較為老舊(使用的是 Solidity 0.4.24)。 在 PoW 鏈分叉之前,該代碼一直運作良好。

簡而言之,本次漏洞的根本原因是 ETHW 鏈上的 Omni Bridge 使用了舊的 chainId,且未正確驗證跨鏈訊息的真實 chainId。 此外,類似的問題也可能存在於其他協議中。

影響範圍

最直接的影響是攻擊者可能竊取大量 ETHW(以及 PoW 鏈上橋接合約擁有的其他代幣),並在各個市場(例如某些中心化交易所)進行交易。 這可能會因流動性的增加而影響 ETHW 的價格。 因此,用戶與投資者在 PoW 鏈上進行相關代幣交易時應保持謹慎。

結論

Solidity 開發者在處理設計由合約自身維護的 chainId 時,應給予特別注意。

關於 BlockSec

BlockSec 是一家領先的區塊鏈安全公司,由一群全球傑出的安全專家於 2021 年創立。公司致力於提升新興 Web3 世界的安全性和可用性,以推動其大規模採用。為此,BlockSec 提供智能合約與 EVM 鏈的安全審計服務,開發了用於安全開發與主動威脅攔截的 Phalcon 平台,用於資金追蹤與調查的 MetaSleuth 平台,以及協助開發者在加密世界中高效航行的 MetaDock 擴充套件。

迄今為止,公司已服務超過 300 家知名客戶,包括 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並獲得了包括 Matrix Partners(經緯創投)、Vitalbridge Capital(唯獵資本)和 Fenbushi Capital(分佈式資本)在內的頂尖投資者兩輪數千萬美元的融資。

官方網站:https://blocksec.com/

官方 Twitter 帳號:https://twitter.com/BlockSecTeam

訂閱最新動態
損失約 387萬 USD:Autheo Network、UNCX 遭駭|BlockSec 週報
Security Insights

損失約 387萬 USD:Autheo Network、UNCX 遭駭|BlockSec 週報

本週報告涵蓋 2026年10月12日–2026年10月18日 期間的 3 起安全事件,估計總損失約為 387萬 USD。Autheo Network 因私鑰遭入侵損失約 176萬 USD;Qubic Wallet 因種子產生機制薄弱損失約 130萬 USD;UNCX Network 的 Smart Token Vesting V2 合約在 Ethereum、BNB Chain、Base 和 Robinhood Chain 上因帳務計算錯誤造成約 80.7萬 USD 的損失。重點分析的 UNCX 事件說明,有缺陷的份額總計計算如何將以不同代幣與份額比率建立的代幣歸屬批次混在一起,進而使人得以從共用資金池超額提領。

損失約 54.2 萬美元:MakerDaoBot 遭駭事件|BlockSec 週報
Security Insights

損失約 54.2 萬美元:MakerDaoBot 遭駭事件|BlockSec 週報

本報告涵蓋 2026/10/05 至 2026/10/11 以太坊發生的 1 起安全事件,估計損失約 54.2 萬美元。攻擊合約部署惡意適配器,並將其傳入缺乏存取控制的 MakerDaoBot 函式,使機器人授予適配器操作其內部 MakerDAO 餘額的權限。適配器結算 4 場舊版 ETH-A 拍賣,將 200 單位 ETH-A 抵押品轉為 WETH;攻擊合約將其解除封裝,並把 200 ETH 轉給攻擊者。

損失約4.18億美元:Bitget、NEAR Intents遭利用 | BlockSec Weekly
Security Insights

損失約4.18億美元:Bitget、NEAR Intents遭利用 | BlockSec Weekly

本雙週安全報告記錄2026年9月21日至10月4日的八起事件,涉及以太坊、BNB Chain、Solana、比特幣、TRON、XRP Ledger、Zcash、Avalanche、NEAR等網絡,損失約4.184億美元。詳細分析涵蓋Bitget因第三方安全產品漏洞損失3.875億美元,及NEAR Intents因退款驗證缺陷與狀態回滾缺失損失387萬美元。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

BlockSec 審計
揭露以太坊工作量證明(EthereumPoW)上的「訊息」重放攻擊