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

signed messages can be replayed

Summary

signed messages can be replayed when sending to the bridge.

Vulnerability Details

withdrawTokensToL1() and sendToL1() don't use nonces. So the same valid signed message along with v, r and s can be submitted again to replay the operation (as everything can be seen publicly in the mempool). ECDSA.recover() will obviously return the same signer every time which is valid. If the operation being replayed is sending funds out, then the bridge could be drained.

Impact

This could drain the bridge from all funds.

Tools Used

Manual review.

Recommendations

Add a nonce to the signed message.

Updates

Lead Judging Commences

0xnevi Lead Judge almost 2 years 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.