Beginner FriendlyFoundryBridge
100 EXP
View results
Submission Details
Severity: high
Valid

Same signature can be used multiple times to execute withdrawTokensToL1

Summary

Missing protection against Cross-chain signature replay attacks, Same signature can be used multiple times

Vulnerability Details

The problem with the code is; in the message that is recovered there is nothing that can be used to prevent the same signature to be used multiple times.
Because the transaction containing the signature values is publicly visible on the blockchain, an attacker can copy the signature and submit identical withdraw calls, draining the bridge contract.

Impact

High

Tools Used

Manual Review

Recommendations

Cross-chain replay attacks can be prevented by implementing a nonce, a number that is only used once, into the signing and verification process, because this contract will also be deployed on L2 adding the chain ID into the signing and verification process is also recommended

Updates

Lead Judging Commences

0xnevi Lead Judge over 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

withdrawTokensToL1()/sendToL1(): signature replay

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.