The _validateSignature
function is recovering the signature but does not check if it is correct, causing all signatures to be accepted.
The signature check if supposed to check that the owner authorized the operation to be executed on its behalf. If any given signature is accepted, a malicious user can forge an operation and submit it for execution without the owner consent, potentially resulting in fund losses for the owner.
Anybody can execute transactions without the owner's signature.
Manual review
Use the return value of the recover function to return the correct validationData
value.
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.