The set_deadline() function checks whether fund.dealine_set is true before allowing the deadline to be updated. However, it fails to update fund.dealine_set after setting the deadline, allowing multiple calls to update the deadline indefinitely.
The function checks if dealine_set is already true, but it does not mark it as true after setting the deadline:
Since fund.dealine_set is never updated, users can repeatedly call set_deadline(), modifying the deadline at any time, even after contributions have been made. This can be exploited by the fund creator to adjust deadlines strategically and manipulate withdrawals.
Fund creators can repeatedly update the deadline, allowing them to withdraw funds at their convenience.
Users may be misled about the deadline, as it can change arbitrarily.
Fundraising integrity is compromised, making deadlines meaningless.
Manual review
Update fund.dealine_set to true after setting the deadline to enforce one-time modification. This ensures that once a deadline is set, it cannot be changed, maintaining fundraising integrity.
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.