Back to Blog

Enthüllen Sie die „Message“-Replay-Angriffe auf EthereumPoW

Code Auditing
September 19, 2022

Am 16. September 2022 stellten wir fest, dass einige Angreifer durch Wiedereinspielung der Nachricht (d. h. des Calldata) der PoS-Kette auf EthereumPoW (auch bekannt als PoW-Kette) erfolgreich viel ETHW erbeuteten. Die Hauptursache für die Ausnutzung ist, dass die Omni-Brücke auf der PoW-Kette die alte chainId verwendet und nicht korrekt die tatsächliche chainId der Cross-Chain-Nachricht verifiziert.

Wir haben uns umgehend mit dem offiziellen Team von EthereumPoW in Verbindung gesetzt. Das Team war aktiv bereit, Maßnahmen zu ergreifen, und sie versuchten auch, mit der Omni-Brücke zu kommunizieren.

Da jedoch immer mehr Angriffe beobachtet wurden, glaubten wir, dass das Risiko öffentlich gemacht werden sollte, und veröffentlichten am 18. September 2022 den Alarm.

Da es noch einige Missverständnisse bezüglich dieser Angriffe gibt, d. h. die Transaktion und nicht die Nachricht wiederholend. In diesem Bericht möchten wir eine detaillierte Analyse zur Klärung liefern.

Angriffsanalyse

Hier ist ein Beispiel für ausnutzende Transaktionen:

Beachten Sie, dass diese beiden Transaktionen unterschiedlich sind, jedoch sind die Calldata (oder Eingabedaten) dieser beiden Transaktionen exakt gleich*:

0x23caab4900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000011500050000a7823d6f1e31569f51861e345b30c6bebf70ebe7000000000000e0f6f6a78083ca3e2a662d6dd1703c939c8ace2e268d88ad09518695c6c3712ac10a214be5109a655671000927c00101806401867f7a4d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a6439ca0fcba1d0f80df0be6a17220fed9c9038a0000000000000000000000000000000000000000000000ad78ebc5ac62000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001482faed2da812d2e5cced3c12b3baeb1a522dc67700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105041c1b1c1c981df6cdaf073d55b78d7f0c7e2b421a569bff677a9464d1d5203672d7b5a3d6af658d14ebc11c26f2547fd0aed01750cca58753a0a79b297bad8a62a71eb6b7ac2099611604eff316e7fe733e9981c1b3890cb04ff9d43612e6f2687227f0226cfa27e4b6cd96a10865e04aa9e0f369dda7548771a094f69bf0a9fa6c27257e22d2b1bbb84beb52ad3966592037b328d352fce375a1fa75cb3fbfd18166f4177a19ad2cc74ce67da68f5ce17b857e6382c3ebf20f76482534135f426f4a74222daa07d9f401cb8baca4339ecd44e285df0e0cb88447a31d08b673cecc67d22c7e6e0ce5afd2ac9439c5a8b68f05077b850cdfdfb79cdaefc5b103bb693609440000000000000000000000000000000000000000000000000000

Es handelt sich lediglich um die Eingabedaten des Aufrufs der Funktion safeExecuteSignaturesWithAutoGasLimit.

Offensichtlich hat der Angreifer (0x82fae) zunächst 200 WETH über die Omni-Brücke der Gnosis-Kette transferiert und dann die gleiche Nachricht auf der PoW-Kette wieder eingespielt und weitere 200 ETHW erhalten. Dadurch konnte der Saldo des auf der PoW-Kette bereitgestellten Chain-Vertrags geleert werden.

Schwachstellenanalyse

Nach der Analyse des Quellcodes der Omni-Brücke stellten wir fest, dass die Logik zur Überprüfung der chainId TATsächlich vorhanden ist.

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

Leider stammt die verwendete chainId in diesem Vertrag aus dem Wert, der im Speicher namens unitStorage gespeichert ist:

    /**
     * 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];
    }

Es handelt sich NICHT um die tatsächliche chainId, die über den CHAINID-Opcode abgefragt wird, wie er in EIP-1344 vorgeschlagen wurde. Dies liegt wahrscheinlich daran, dass der Code ziemlich alt ist (er verwendet Solidity 0.4.24). Der Code funktionierte immer einwandfrei, bis zur Abspaltung der PoW-Kette.

Kurz gesagt, die Hauptursache für die Ausnutzung ist, dass die Omni-Brücke auf der ETHW-Kette die alte chainId verwendet und nicht korrekt die tatsächliche chainId der Cross-Chain-Nachricht verifiziert. Darüber hinaus können ähnliche Probleme in anderen Protokollen bestehen.

Die Auswirkungen

Die unmittelbare Auswirkung ist, dass der oder die Angreifer viel ETHW (und auch andere Token, die der Brücke auf der PoW-Kette gehören) erbeuten und diese auf einigen Marktplätzen (z. B. einigen CEXs) handeln konnten. Dadurch könnte der Preis von ETHW aufgrund der erhöhten Liquidität beeinflusst werden. Daher sollten Benutzer/Investoren beim Handel mit diesen Token auf der PoW-Kette vorsichtig sein.

Schlussfolgerung

Solidity-Entwickler sollten besondere Aufmerksamkeit auf chainIds legen, die vom Vertrag selbst verwaltet werden sollen.

Über BlockSec

BlockSec ist ein Pionier im Bereich der Blockchain-Sicherheit, das 2021 von einer Gruppe weltweit renommierter Sicherheitsexperten gegründet wurde. Das Unternehmen engagiert sich für die Verbesserung der Sicherheit und Benutzerfreundlichkeit der aufstrebenden Web3-Welt, um deren Massenadaption zu ermöglichen. Zu diesem Zweck bietet BlockSec Dienstleistungen für die Prüfung von Smart Contracts und EVM-Ketten, die Phalcon-Plattform für die Entwicklung und proaktive Abwehr von Sicherheitsbedrohungen, die MetaSleuth-Plattform für die Nachverfolgung und Untersuchung von Geldern sowie die MetaDock-Erweiterung für Web3-Entwickler, um effizient im Krypto-Bereich zu agieren.

Bis heute hat das Unternehmen über 300 geschätzte Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zehn Millionen US-Dollar erhalten.

Offizielle Website: https://blocksec.com/

Offizieller Twitter-Account: https://twitter.com/BlockSecTeam

Sign up for the latest updates
Drift Protocol Incident: Multisig Governance Compromise via Durable Nonce Exploitation
Security Insights

Drift Protocol Incident: Multisig Governance Compromise via Durable Nonce Exploitation

On April 1, 2026 (UTC), Drift Protocol on Solana suffered a $285.3M loss after an attacker exploited Solana's durable nonce mechanism to delay the execution of phished multisig approvals, ultimately transferring administrative control of the protocol's 2-of-5 Squads governance with zero timelock. With full admin privileges, the attacker created a malicious collateral market (CVT), inflated its oracle price, relaxed withdrawal protections, and drained USDC, JLP, SOL, cbBTC, and other assets through 31 rapid withdrawals in approximately 12 minutes. This incident highlights how durable nonce-based delayed execution can decouple signer intent from on-chain execution, bypassing the temporal assumptions that multisig security implicitly relies on.

Weekly Web3 Security Incident Roundup | Mar 23 – Mar 29, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Mar 23 – Mar 29, 2026

This BlockSec weekly security report covers eight DeFi attack incidents detected between March 23 and March 29, 2026, across Ethereum and BNB Chain, with total estimated losses of approximately $1.53M. Incidents include a $679K flawed burn mechanism exploit on the BCE token, a $512K spot-price manipulation attack on Cyrus Finance's PancakeSwap V3 liquidity withdrawal, a $133.5K flash-loan-driven referral reward manipulation on a TUR staking contract, and multiple integer overflow, reentrancy, and accounting error vulnerabilities in DeFi protocols. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Newsletter -  March 2026
Security Insights

Newsletter - March 2026

In March 2026, the DeFi ecosystem experienced three major security incidents. Resolv Protocol lost ~$80M due to compromised privileged infrastructure keys, BitcoinReserveOffering suffered ~$2.7M from a double-minting logic flaw, and Venus Protocol incurred ~$2.15M following a donation attack combined with market manipulation.

Best Security Auditor for Web3

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

BlockSec Audit