The withdraw
function's access control implementation contradicts multiple documentation sources that clearly state the organizer should withdraw funds, but the implementation uses onlyOwner
instead of onlyOrganizer
, creating confusion about roles and responsibilities.
Multiple documentation sources specify that the organizer withdraws funds, but the implementation uses wrong access control:
Interface Documentation (line 74-78):
Code Comments (line 156-157):
README.md (line 17):
Likelihood: High - Every withdrawal operation will use the wrong access control pattern.
Impact: Low - Functional confusion and role misalignment, but no direct security risk since owner is trusted.
Documentation inconsistency creates confusion about system roles
Interface specifications contradict implementation behavior
Could lead to integration errors where external systems expect organizer initiated withdrawals
This test demonstrates the access control contradiction where documentation specifies organizer withdrawals but implementation requires owner privileges.
Align the implementation with documentation by changing the access control:
Alternative: Update all documentation to reflect that the owner handles withdrawals:
Consistency between documentation and implementation is crucial for proper integration and understanding of system roles.
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.