Summary
The set_deadline
function does not validate whether the provided deadline is in the future, allowing users to set an invalid past deadline.
Vulnerability Details
In the set_deadline
function:
The function only checks if the deadline has already been set (dealine_set
).
There is no validation to ensure that the provided deadline is greater than the current time.
Impact
A user may set a past deadline, making the fund immediately expired and preventing further contributions.
This could lead to funds being locked or causing unexpected behavior in the refund process.
Tools Used
Manual code review
Recommendations
Before setting the deadline, add a validation check:
This ensures that only future deadlines are allowed.
The creator has an incentive to pay attention to the deadline and provide correct data. If the `deadline` is set in the past, the campaign will be completed. If there are any funds the creator or the contributors (depending on the success of the campaign) can receive them. It is the creator's responsibility to set correct deadline, otherwise the creator can create a new campaign. There is no impact on the protocol from this missing check, so I consider this to be an informational issue.
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.