RustFund

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

Missing update to `dealine_set` in `set_deadline` function

Summary

Missing update to dealine_set in set_deadline function.

Vulnerability Details

The set_deadline function checks if the deadline is already set but doesn't update the flag after setting it:

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

Impact

In function set_deadline, it checks if dealine_setis true before allowing the dealine to be set. This means dealine_setcan be called once. However, after setting the deadline, the function never updates the dealine_set flag to true . The fund creator can call set_deadline multiple times, changing the deadline at will.

Tools Used

VSCode

Recommendations

fund.deadline = deadline;
fund.deadline_set = true;
Ok(())
Updates

Appeal created

bube Lead Judge 6 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.