A critical vulnerability exists in the withdrawal mechanism where the function lacks proper access control, potentially allowing unauthorized parties to trigger fund transfers to the campaign creator.
Current implementation uses has_one = creator
constraint
However, this does NOT guarantee that ONLY the creator can call the function
The function can potentially be invoked by any account
Funds will still be transferred to the correct creator
Unnecessary exposure of critical financial function
Violation of access control best practices
Any user can trigger the withdrawal process
Explicit creator verification
Manual Code Review
Static Code Analysis
There are enough security checks in `withdraw` function. Anchor enforces that creator must sign the transaction. And the `has_one = creator` ensures that the fund’s creator matches the provided creator account.
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.