Description:
The ChristmasDinner::changeHost function allows anyone to become a host without verification of deposit. A malicious user can become a participant and qualify for host status by toggling their participation status to true using the ChristmasDinner::changeParticipationStatus function (even without depositing) and then using the ChristmasDinner::changeHost function to assume the host role. This enables the malicious user to withdraw all funds from the contract.
Proof of Concept:
. A malicious user can assume control as the host without contributing to the event.
. Unauthorized withdrawal of all contract funds by the malicious host, leading to a complete loss of deposits
slither, aderyn, foundry, manual
Update the ChristmasDinner::changeHost function to verify that the new host has a non-zero deposit balance before allowing the role change.
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.