Normal behavior: The event should have a valid time window with eventStartDate < eventEndDate. The winner should only be set after the event ended.
Issue: The constructor does not validate temporal invariants. If eventEndDate < eventStartDate, the owner can set the winner right after the (earlier) end date passes, effectively eliminating the event window while deposits and joins still occurred before eventStartDate.
Likelihood: Low
Requires misconfiguration at deployment.
Impact: Low
Eliminates the intended event window; users can join but the owner can finalize immediately after the earlier end date.
Description:
Deploy vault with eventEndDate < eventStartDate.
User deposits and joins before eventStartDate.
After time reaches eventStartDate, owner can immediately set the winner since eventEndDate already passed.
Validate time invariants in the constructor (and any admin updaters if added later).
This is owner action and the owner is assumed to be trusted and to provide correct input arguments.
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.