Root + Impact
The createPerformance() function validates that startTime is in the future and duration > 0, but does not validate that reward > 0.
An organizer can create a performance with reward = 0. Users who attend this performance consume their 1-hour cooldown (lastCheckIn is updated) but receive 0 BEAT tokens. They are then blocked from attending a legitimate, rewarding performance until the cooldown expires.
Likelihood:
Requires organizer to set reward = 0 (likely a mistake rather than intentional attack)
Low probability but easily preventable
Impact:
Users waste their cooldown period attending a zero-reward performance
Users miss out on concurrent legitimate performances during the wasted cooldown window
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.