Normal behavior: Users should purchase one pass type and receive corresponding multiplier (1x General, 2x VIP, 3x Backstage).
Issue: Users can purchase all three pass types and always receive the maximum 3x multiplier. The getMultiplier() function checks pass ownership hierarchically but doesn't prevent multiple pass ownership.
The buyPass() function has no restrictions preventing multiple purchases per user.
Likelihood:
Users can immediately exploit this by purchasing multiple passes
No special conditions or timing required - always available
Impact:
Economic exploitation: 1.6 ETH investment yields permanent 3x reward advantage
Token economics imbalance: exploiters receive 300 BEAT instead of 100 BEAT per performance
This prevents users from purchasing multiple passes, maintaining the intended tiered reward system.
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.