Method joinEvent() is not checking the event start-time. So anyone can joining at the exact event start time.
Users can join exactly at eventStartDate, potentially with early match knowledge.
Users should not be able to join once the event starts.
Check uses > instead of >=, allowing joins at exact startDate.
Likelihood:
Users can join at exact startDate timestamp
Possible with automated bots and use small timing window
Impact:
Users join with early match knowledge and can enjoy unfair advantage
Gaming the prediction market and can perform Front-running opportunities
Lets assume that event start at 1000 (block-timestamp). Now all the users deposit and participate before the event start but any attacker can join exactly the same time when the event-start, by submitting the transaction in the same block.
Just updating the check from > to >= can solve the issue, and no can join the game on the start time too.
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.