Anyone can become a participant bypassing the deposit function. Not enough checks in place.
The else block changeParticipationStatus() can be called by anyone regardless of them making a deposit or not as this "!participant[msg.sender]" would always be false.
High
manual review
Consider adding more security checks/ requirements in else block of the changeParticipationStatus() when a user is not a participant.
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.