The contribute() function has a deadline check that blocks contributions after the deadline has passed. This is intended to close the campaign to new deposits once the deadline expires.
The same deadline != 0 && short-circuit means contributions are always accepted on funds with no deadline. Combined with H-03 (withdraw without guards), the creator can collect unlimited SOL and withdraw at any time.
Likelihood: Medium
Any fund created without calling set_deadline() accepts contributions forever. There is no mechanism to close or finalize the campaign.
Impact: Medium
Contributors keep sending SOL to a fund with no end date. The creator can withdraw at any time (H-03), creating an unlimited extraction vector.
Severity: Medium
A fund is created without setting a deadline. Days, weeks, or months later, new contributions are still accepted with no expiry. Combined with H-03, the creator can withdraw at any time.
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.