Describe the normal behavior in one or more sentences
Users should join an event once, with their address recorded uniquely in usersAddress. numberOfParticipants should reflect unique participants only.
Explain the specific issue or problem in one or more sentences
joinEvent() (line 263) lacks protection against multiple calls. Users can call it repeatedly, causing duplicate entries in usersAddress, inflated numberOfParticipants, and incorrect totalWinnerShares calculation as the same user's shares are counted multiple times.
Likelihood:
Reason 1 // Describe WHEN this will occur (avoid using "if" statements)
A user intentionally calls joinEvent() multiple times to manipulate participant counts or gain unfair advantage.
Reason 2
Accidental double-clicks, front-end bugs, or retry mechanisms cause multiple calls, corrupting state.
Impact:
Impact 1
Incorrect totalWinnerShares calculation causes unfair fund distribution. Same user's shares counted multiple times.
Impact 2
Increased gas costs from duplicate entries and unreliable numberOfParticipants counter affecting dependent functions.
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.