The L1BossBridge contract's withdrawTokensToL1 function is susceptible to signature replay attacks due to the lack of unique transaction identifiers, such as nonces. This vulnerability allows the same signature to be used multiple times to withdraw tokens, potentially leading to unauthorized token withdrawals and financial losses.
In the L1BossBridge contract, the withdrawTokensToL1 function allows token withdrawals based on a signature provided by an authorized signer. However, the function does not incorporate unique transaction identifiers like nonces, making it possible for the same signature to be reused in multiple withdrawal transactions.
This vulnerability can result in significant financial losses as malicious actors or even legitimate users can drain the contract's funds by repeatedly using the same valid signature. The severity of this impact intensifies with the amount of funds and number of users involved in the contract.
User legitimately withdraws tokens using a valid signature.
User (or a malicious actor with access to the signature) reuses the same signature to initiate another withdrawal.
Due to the lack of nonce-based validation, the contract processes the second withdrawal, allowing unauthorized token withdrawal.
Foundry
Introduce unique transaction identifiers, such as nonces, in the withdrawTokensToL1 function. Each signature should only be valid for a transaction with a specific nonce, preventing its reuse.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.