Signature Replay Explained in Detail
Signature replay happens when a valid signature can be submitted more than once, or submitted in a different context than intended.
The attacker does not forge the signature. They reuse something valid.
Smart contract example
A contract lets users withdraw with a signed message:
bytes32 digest = keccak256(abi.encodePacked(user, amount));
If there is no nonce, the same signature can withdraw repeatedly. If there is no chain or contract binding, the signature may also work on another deployment.
Signature Replay in Auditing
Signature replay turns a one-time authorization into something an attacker can reuse. It commonly affects withdrawals, permits, claims, swaps, delegated calls, bridge messages, and governance votes. That often makes it an access control bug.
The first execution often succeeds normally, so happy-path tests may miss the replay.
Red flags in code
-
No nonce, salt, bitmap nonce, or used-message tracking.
-
Nonce is checked but not consumed.
-
Deadline is missing.
-
Signed hash omits
block.chainidor contract address. -
Same signature is valid across multiple functions.
-
Signature bytes are tracked instead of message hash or nonce.
-
abi.encodePackedis used for complex signed data. -
ecrecoveraccepts malleable signatures.
How to test or review it
-
Submit the same signature twice.
-
Try the same signature with a different recipient, amount, function, contract, and chain if the setup allows it.
-
Verify that nonces are consumed before any risky external interaction.
-
Check that the signed data includes all execution-critical fields.
-
Use the Keccak-256 tool to reproduce simple signed digests during review.
Keep learning this topic
EIP-712
EIP-712 is a standard for signing typed structured data so a signature is bound to a specific message type and domain.
Permit2
Permit2 is Uniswap's shared approval and signature transfer system that lets users authorize token spends through structured signatures or managed allowances.
Commit-Reveal
Commit-reveal is a two-step pattern where users first submit a hidden commitment and later reveal the original value to reduce front-running.
Replay Attacks
See how this vulnerability appears in real smart contract audits.
Phishing Attacks
Phishing attacks targeting smart contract users and teams: common social-engineering vectors, wallet risks, and practical prevention controls.
Access Control Attacks
Access control attacks in Solidity: broken authorization patterns, privilege escalation paths, and secure role and ownership design.
Keccak256 Online
Use this SCH tool to turn the concept into practical audit work.
Smart Contract Audit Checklist
Use this SCH tool to turn the concept into practical audit work.
Practice this in real audit scenarios
Definitions help, but auditors need reps. SCH turns concepts like Signature Replay into exploit labs, code review habits, and report-writing practice.
Start the free trial or see the full smart contract auditing course.