The contract mentions a TODO about preventing replay attacks by storing request hashes in storage, but not implimented. Implement request hash checks to prevent replays.
Lack of request hash storage allows replay attacks.
Manual code review
To resolve this issue, the developer should uncomment the suggested fix and implement a system to store and check request hashes. This could involve:
Storing the request hash in storage when a new request is made.
Checking if a request hash has been seen before for the current sender before processing a new request.
For example:
There is no impact here: Transaction cannot be replayed because the blockchain use the nonce in the signature. Hash is computed on-chain. Using or trying to have the same hash mean you need to buy the token, and they will be sent to their origin owner. Why an attacker would buy tokens to give them back ? No real impact.
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.