activateNow = false cannot be activated later, causing permanent denial of serviceThe FestivalPass::createMemorabiliaCollection function allows organizers to create collections with an activateNow parameter that determines whether the collection is immediately active for redemption. However, there is no mechanism to activate collections that were created with activateNow = false. When a collection is created, the isActive field is set based on the activateNow parameter:
The FestivalPass::redeemMemorabilia function requires collections to be active:
Since there's no function to modify the isActive state after creation, collections created with activateNow = false become permanently unusable.
Collections created with activateNow = false are permanently locked and cannot be used for their intended purpose. This creates a denial of service for organizers who intended to activate these collections later. The organizer must create new collections to achieve the same functionality, leading to wasted gas and potential confusion.
Organizer calls createMemorabiliaCollection with activateNow = false:
Collection is created with isActive = false
Users attempt to redeem from the collection:
No function exists to activate the collection, making it permanently unusable
Add a function to allow organizers to activate collections after creation:
Additionally, consider adding a corresponding deactivateCollection function for complete control over collection states.
Low because an organizer can use it with active = true and organizer is trusted.
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.