Root Cause: The set_deadline function accepts any u64 value without validating that it represents a future timestamp.
Impact: Creators can set deadlines to past timestamps, immediately bypassing all deadline-based protections and enabling instant fund manipulation.
Normal behavior: Campaign deadlines must be set in the future to give contributors adequate time to participate and evaluate campaigns before completion.
Issue: No validation exists to ensure the deadline timestamp is greater than the current time. Creators can set deadline = 1 (year 1970) or any past value.
Likelihood:MEDIUM
Reason 1 :Requires malicious intent from campaign creator to exploit
Reason 2:Simple to execute by passing any past timestamp as the deadline parameter
Impact:MEDIUM
Impact 1:All deadline-based checks become immediately satisfied, bypassing time-based protections
Impact 2:Combined with other vulnerabilities, enables instant unauthorized fund extraction
The creator sets the deadline to Unix timestamp 1 (January 1, 1970). Since current time is always greater than 1970, the campaign is immediately "past deadline." This bypasses all time-based protections instantly, allowing immediate exploitation of deadline-dependent functions without waiting.
Validate that the provided deadline is greater than the current blockchain timestamp using Clock::get(). This ensures deadlines are always in the future, giving contributors adequate time to participate. Reject any past timestamps with a DeadlineInPast error.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.