The ChristmasDinner::changeParticipationStatus function allows any user to change participation without a check for deposit. This enables users to mark themselves as participants in the event without contributing any funds contrary to the intention of the contract.
Proof of Concept:
Deploy the ChristmasDinner contract with valid token 2. addresses.
A user who has not deposited any funds calls the ChristmasDinner::changeParticipationStatus function before the deadline.
Verify that the user's participation status is set to true despite not contributing any deposits.
Unauthorised users can exploit this to falsely sign up without sending funds to the contract.
foundry, aderyn, manual audit
Update theChristmasDinner::changeParticipationStatus function to validate whether the user has made a deposit before toggling their participation status to true. This can be achieved by checking the user's deposit balances:
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.