FestivalPass
does not implement a pause mechanism. The owner cannot halt critical functions such as pass sales (buyPass
), memorabilia redemption (redeemMemorabilia
), reward distribution (attendPerformance
), or even the creation of new memorabilia collections and performances, even if a vulnerability or exploit is discovered. This is against best practices for ERC1155 contracts and exposes the contract to unlimited exploitation in emergencies.
Likelihood:
When a bug, exploit, or abuse is discovered, the owner cannot stop further damage.
All critical functions (pass sales, NFT minting, reward distribution, new collection/performance creation) remain callable at all times.
Impact:
Unlimited pass sales, NFT minting, or reward distribution is possible.
New memorabilia collections or performances could be created maliciously.
User assets and project reputation are at risk.
Without a pause mechanism, any vulnerability in buyPass()
, attendPerformance()
, redeemMemorabilia()
, createPerformance()
, or createMemorabiliaCollection()
can be exploited continuously, as the contract owner cannot intervene to halt these operations.
Add OpenZeppelin’s Pausable
and use the whenNotPaused
modifier on all sensitive functions, allowing the owner to pause pass sales, memorabilia redemption, reward distribution, and creation of new collections/performances in emergencies.
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.