Normal Behavior:
The FestivalPass contract relies on the beatToken address for all BEAT-related operations (minting, burning, rewards, memorabilia redemption). In the event of a bug, upgrade, or migration, it should be possible for the contract owner to update the beatToken address to a new, valid contract.
Issue:
Currently, the beatToken address is set only once in the constructor and cannot be changed. If the BeatToken contract is ever upgraded, deprecated, or compromised, all BEAT-related functionality in FestivalPass will be permanently broken, with no way to recover or migrate.
Likelihood:
Upgrades or migrations are rare, but possible due to bugs, exploits, or protocol evolution.
Impact:
If the BeatToken contract is deprecated or compromised, all BEAT-related features in FestivalPass will be permanently broken.
If a bug or vulnerability is discovered in BeatToken, or if the protocol needs to migrate to a new token contract, there is no way for the owner to update the beatToken address in FestivalPass. All calls to mint, burn, or transfer BEAT will fail or interact with the wrong contract.
Add an onlyOwner function to update the beatToken address, with a zero-address check and event emission.
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.