← All casesConfidential · Anonymized
Case
#019
Web3 · Bridge · Severity: High

Cross-Chain Bridge Message Replay

A bridge message format omitted the source-chain identifier from the signed payload. Valid messages could be replayed on other bridge endpoints belonging to the same bridge instance, causing state desynchronization.

Industry
Web3 · Bridge
Scope
Bridge · Cryptography · Multi-chain
Timeline
R·Q4 → V·Q4 → R·Q4
Closed
Q4
01

Impact

Replay surface
Any signed message replayable across bridge endpoints
State drift
Downstream balances desynchronized on replay
Detection difficulty
On-chain reads look identical to a legitimate transfer
Impact vectors
  • Message replay across networks
  • State desynchronization
02

Reproduction

Steps below reproduce the finding against a staging replica. Where the reproduction affected a shared component, coordination was arranged before execution.

  1. 01Capture a signed bridge message on the source chain.
  2. 02Submit the identical payload to a different bridge endpoint of the same instance.
  3. 03Confirm acceptance and observe state divergence on the destination.
03

Vulnerability

Message payload (simplified)solidity
struct BridgeMessage {
  address recipient;
  uint256 amount;
  uint256 nonce;
  bytes   signature;   // does not cover srcChainId
}
04

Mitigation

Client-side mitigation shipped and validated during the engagement. Reference patch below.

Chain-bound versioned payloadsolidity
struct BridgeMessage {
  bytes4  version;      // format discriminant
  uint256 srcChainId;
  uint256 dstChainId;
  address recipient;
  uint256 amount;
  uint256 nonce;
  bytes   signature;   // covers all fields above
}
05

Retest & Verify

  • Cross-endpoint replays rejected due to chain-id mismatch in the signed payload.
  • Version-discriminant migration deployed without loss of in-flight messages.
  • Bridge accounting reconciled post-migration; no residual desynchronization observed.
06

Deliverables

  • Technical Report
  • Message-format review
  • Nonce audit
  • Retesting report
07

Sign-off

Handled by
Epulyx
Reviewed by
Nolan
Closed
Case closed after cross-endpoint replay verified closed.
Cookies

We use a minimal set of cookies to keep this site functional. Analytics cookies only with your consent. Cookie Policy.