RustFund

First Flight #36
Beginner FriendlyRust
100 EXP
View results
Submission Details
Severity: medium
Valid

Deadline Can Be Modified Repeatedly Due to Logic Error

Summary

The set_deadline function fails to update dealine_set, allowing creators to repeatedly change the deadline.

Vulnerability Details

The dealine_set flag is never set to true after the deadline is initialized, allowing multiple calls to set_deadline.

https://github.com/CodeHawks-Contests/2025-03-rustfund/blob/b5dd7b0ec01471667ae3a02520701aae405ac857/programs/rustfund/src/lib.rs#L55-L63

pub fn set_deadline(ctx: Context<FundSetDeadline>, deadline: u64) -> Result<()> {
let fund = &mut ctx.accounts.fund;
if fund.dealine_set { // Typo: should be 'deadline_set'
return Err(ErrorCode::DeadlineAlreadySet.into());
}
fund.deadline = deadline;
// Missing: fund.deadline_set = true;
Ok(())
}

Impact

Creators can extend deadlines indefinitely, preventing contributors from claiming refunds.

Tools Used

Recommendations

  1. Fix the typo: rename dealine_set to deadline_set.

  2. Update the flag after setting the deadline:

    + fund.deadline_set = true;
Updates

Appeal created

bube Lead Judge 3 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Deadline set flag is not updated in `set_deadline` function

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.