A critical vulnerability in the contribution tracking mechanism prevents contributors from receiving refunds and permanently locks their funds. Due to improper contribution amount tracking, the protocol's core promise of refundability is completely broken.
Root Cause: Contributions are initialized and never updated with the actual contributed amount.
Impact:
All refund attempts will return 0 SOL
Contributors cannot recover funds if a campaign fails
Complete breakdown of the refund promise
Flawed Implementation:
Consequences:
Individual contribution amounts remain at 0
No per-contributor tracking
The total fund raised appears correct, masking the underlying issue
Broken Refund Promise: Contributors cannot reclaim funds
Data Integrity Compromised: Individual contribution records are meaningless
Financial Risk: Potential permanent loss of user funds
Severity: Critical
Financial Risk: High
User Trust: Severe damage to platform credibility
Potential Fund Loss: 100% of individual contributions at risk
Silent Failure Mechanism:
Transactions appear successful
fund.amount_raised
reflects total contributions
Individual contribution records remain zeroed out
The refund function silently fails, transferring 0 SOL
Immediate Code Patch
Update contribute
function to increment contribution.amount
Add comprehensive unit tests for contribution tracking
Implement robust refund mechanism validation
Long-Term Recommendations
Conduct a full security audit of contribution tracking logic
Implement additional validation checks
Add logging and monitoring for contribution activities
This vulnerability represents a critical failure in the protocol's core financial mechanism. To prevent permanent user fund loss and restore platform integrity, immediate action is required.
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.