EthereumPoW における「メッセージ」リプレイ攻撃を明らかにする

EthereumPoW における「メッセージ」リプレイ攻撃を明らかにする

2022年9月16日、一部の攻撃者がEthereumPoW(PoWチェーンとも呼ばれる)のPoSチェーンのメッセージ(すなわち、calldata)をリプレイすることで、大量のETHWを収穫することに成功したことを検出しました。 エクスプロイトの根本原因は、PoWチェーン上のOmniブリッジが古いchainIdを使用しており、クロスチェーンメッセージの実際のchainIdを正しく検証していないことです。

直ちにEthereumPoWの公式チームに連絡しました。 チームは積極的に行動する意思があり、Omni Bridgeとのコミュニケーションを試みました

しかし、ますます多くの攻撃が観測されたため、リスクを公に通知すべきだと考え、2022年9月18日にアラートを公開しました。

これらの攻撃、つまりメッセージのリプレイではなくトランザクションのリプレイについて、まだ誤解が存在するため、本レポートでは、それを明確にするための詳細な分析を提供したいと思います。

攻撃分析

以下にエクスプロイトトランザクションの例を示します。

これらの2つのトランザクションは異なりますが、これらの2つのトランザクションのcalldata(または入力データ)は全く同じです

0x23caab4900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000011500050000a7823d6f1e31569f51861e345b30c6bebf70ebe7000000000000e0f6f6a78083ca3e2a662d6dd1703c939c8ace2e268d88ad09518695c6c3712ac10a214be5109a655671000927c00101806401867f7a4d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a6439ca0fcba1d0f80df0be6a17220fed9c9038a0000000000000000000000000000000000000000000000ad78ebc5ac62000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001482faed2da812d2e5cced3c12b3baeb1a522dc67700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105041c1b1c1c981df6cdaf073d55b78d7f0c7e2b421a569bff677a9464d1d5203672d7b5a3d6af658d14ebc11c26f2547fd0aed01750cca58753a0a79b297bad8a62a71eb6b7ac2099611604eff316e7fe733e9981c1b3890cb04ff9d43612e6f2687227f0226cfa27e4b6cd96a10865e04aa9e0f369dda7548771a094f69bf0a9fa6c27257e22d2b1bbb84beb52ad3966592037b328d352fce375a1fa75cb3fbfd18166f4177a19ad2cc74ce67da68f5ce17b857e6382c3ebf20f76482534135f426f4a74222daa07d9f401cb8baca4339ecd44e285df0e0cb88447a31d08b673cecc67d22c7e6e0ce5afd2ac9439c5a8b68f05077b850cdfdfb79cdaefc5b103bb693609440000000000000000000000000000000000000000

これはsafeExecuteSignaturesWithAutoGasLimit関数の呼び出しの入力データにすぎません。

明らかに、攻撃者(0x82fae)はまずGnosisチェーンのOmniブリッジを通じて200 WETHを転送し、その後PoWチェーン上で同じメッセージをリプレイして、さらに200 ETHWを取得しました。 これにより、PoWチェーン上にデプロイされたチェーンコントラクトの残高を枯渇させることが可能になります。

脆弱性分析

Omniブリッジのソースコードを分析した後、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ブリッジが古いchainIdを使用しており、クロスチェーンメッセージの実際のchainIdを正しく検証していないことです。 さらに、類似の問題が他のプロトコルにも存在する可能性があります。

影響

直接的な影響は、攻撃者が大量のETHW(およびPoWチェーン上のブリッジが所有する他のトークン)を収穫し、いくつかのマーケットプレイス(例:一部のCEX)で取引できたことです。 これにより、流動性の増加によりETHWの価格に影響を与える可能性があります。 したがって、ユーザー/投資家はPoWチェーンでのこれらのトークンの取引には注意が必要です。

結論

Solidity開発者は、コントラクト自体が管理するように設計されたchainIdを扱う際には、特別な注意を払うべきです。

BlockSecについて

BlockSecは、2021年に世界的に著名なセキュリティ専門家グループによって設立された、先駆的なブロックチェーンセキュリティ企業です。当社は、Web3の世界のセキュリティと使いやすさを向上させ、その大規模な採用を促進することにコミットしています。この目的のために、BlockSecはスマートコントラクトとEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威のプロアクティブなブロックのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、そしてWeb3ビルダーが効率的に仮想通貨の世界をサーフィンするためのMetaDock拡張機能を提供しています。

今日まで、当社はMetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300以上の著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを受け取っています。

公式ウェブサイト:https://blocksec.com/

公式Twitterアカウント:https://twitter.com/BlockSecTeam

Sign up for the latest updates
Weekly Web3 Security Incident Roundup | Feb 9 – Feb 15, 2026

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

During the week of February 9 to February 15, 2026, three blockchain security incidents were reported with total losses of ~$657K. All incidents occurred on the BNB Smart Chain and involved flawed business logic in DeFi token contracts. The primary causes included an unchecked balance withdrawal from an intermediary contract that allowed donation-based inflation of a liquidity addition targeted by a sandwich attack, a post-swap deflationary clawback that returned sold tokens to the caller while draining pool reserves to create a repeatable price-manipulation primitive, and a token transfer override that burned tokens directly from a Uniswap V2 pair's balance and force-synced reserves within the same transaction to artificially inflate the token price.

Top 10 "Awesome" Security Incidents in 2025

Top 10 "Awesome" Security Incidents in 2025

To help the community learn from what happened, BlockSec selected ten incidents that stood out most this year. These cases were chosen not only for the scale of loss, but also for the distinct techniques involved, the unexpected twists in execution, and the new or underexplored attack surfaces they revealed.

#10 Panoptic Incident: XOR Linearity Breaks the Position Fingerprint Scheme

#10 Panoptic Incident: XOR Linearity Breaks the Position Fingerprint Scheme

On August 29, 2025, Panoptic disclosed a Cantina bounty finding and confirmed that, with support from Cantina and Seal911, it executed a rescue operation on August 25 to secure roughly $400K in funds. The issue stemmed from a flaw in Panoptic’s position fingerprint calculation algorithm, which could have enabled incorrect position identification and downstream fund risk.