A malicious user can frontrun the proxy contract creation to get assets from the owner.
A user can calculate a future Proxy address with the next function:
Also it quite easy to find out the salt
that is based on a organizer address, contestId and implementation contract address.
So a malicious user can watch for new setContest()
users were set, calculate a future Proxy address of the target and wait till the contest owner will send tokens to it.
Contest owner has to send tokens to the Proxy contract in advance, as it is requires by the protocol rules.
Right after it a malicious user can deploy a calculated Proxy contract with a malicious implementation contract address and steal all tokens.
Hacker can steal contest owner tokens.
Manual review
Provide a check if Proxy contract was already deployed and if so, recalculate the address.
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.