The constructor of FestivalPass does not validate that the beatToken address is nonzero. If the owner or deployer sets beatToken to the zero address (either accidentally or maliciously), all BEAT token minting and burning operations will fail. This bricks core contract features, including:
Distributing BEAT token rewards for attending performances
Granting BEAT token bonuses for VIP/BACKSTAGE pass purchases
Redeeming memorabilia (which burns BEAT tokens)
Likelihood:
If beatToken is set to zero, all BEAT-related features are permanently disabled. Users cannot receive rewards, bonuses, or redeem memorabilia.
The project loses its main utility and value proposition.
Impact:
This can occur due to a deployment mistake, misconfiguration, or malicious intent.
If beatToken is set to zero, any call to a function that tries to mint or burn BEAT tokens will revert or have no effect.
The proposed fix—adding a zero-address check in the constructor—is correct and practical. The provided diff clearly shows the changes needed to prevent the issue.
Owner/admin is trusted / Zero address check - Informational
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.