The RustFund smart contract has a business logic flaw in his withdraw
that breaks the secure withdrawal invariant
The withdraw
function does not check if the fundraising goal has been met before allowing the creator to withdraw funds, violating the intended business logic.
Funds can be withdrawn before meeting the funding goal breaking the invariant of the protocol. This issue allows unauthorized fund withdrawals, which is critical for a crowdfunding smart contract.
Manual Review
Ensure that the goal is met before allowing withdrawals. So add a check that return an error if the goal is not reached.
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.