The contract includes a deadlineSet boolean flag to prevent multiple deadline changes, but the flag is never set to true. This oversight allows the host to change the deadline indefinitely, potentially manipulating the participation window and undermining the contract's time-bound guarantees.
The setDeadline function checks the deadlineSet flag but never updates it:
ChristmasDinner.sol#L180-L187
The deadlineSet variable is initialized as:
ChristmasDinner.sol#L42
Host can repeatedly change the deadline
Undermines the contract's time-bound guarantees
Participants cannot rely on the deadline for planning
Could be used to manipulate participant behavior or prevent refunds
Manual code review
Performing formal verification with Quint
Set the deadlineSet flag to true after setting the deadline
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.