Users can attend the Christmas social dinner directly without paying the registration fee.
From the changeParticipationStatus()
function, we can see that in the else if
condition, if the user is not already a participant, they can still change their status to "true" as a participant before the deadline. This allows them to become a participant without paying the registration fee.
By this method, any user can make themselves a participant of the dinner, which violates the contract's intended rules.
Manual Review
Under the else if
condition, add a call to a deposit function, so that users can only change their participation status to true after making a deposit.
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.