sendToL1 function allows for a malicious user to replay the signature signed by an operator to keep withdrawing as long as the vault has enough funds.
The message hash generated by the operator by signing the message did not include a Nonce or refuse to check if such message has been executed. This omission allows the signature data to be used infinitely, enabling malicious user to withdraw funds limitlessly.
malicious user is able to drain funds in the contract for as much as possible before the team will be able to pause the contract.
foundry, manual review.
Add to L1TokenBridge.t.sol and run with forge test --mt testUserCanWithdrawMultipleTokensWithOperatorSignature -vvvvvvvvvvv
it is advisable to the team to add nonce in the messages signed by the operator and also include a mapping that changes the status of the signature to executed the moment it is being executed by the users.
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.