The createMemorabiliaCollection function allows the onlyOrganizer to define new types of memorabilia NFTs, including their initial active status via the activateNow boolean. The redeemMemorabilia function allows users to redeem these NFTs, but only if the collection's isActive flag is set to true.
The specific issue is that once a MemorabiliaCollection is created, there is no subsequent function available to change its isActive status. This means if a collection is created as inactive, it can never be activated, and if created as active, it can never be deactivated or paused.
Root Cause:
In FestivalPass.sol, the isActive flag for a MemorabiliaCollection is set only once during its creation via the activateNow parameter in the createMemorabiliaCollection function. There is no separate function provided that allows the onlyOrganizer (or onlyOwner) to change the isActive status of an existing collection after it has been created.
Likelihood:
This will occur when an onlyOrganizer calls createMemorabiliaCollection and sets activateNow to false, inadvertently making the collection permanently unusable.
This will also occur when an onlyOrganizer calls createMemorabiliaCollection and sets activateNow to true, but later requires the ability to pause or deactivate the collection, which is not possible.
Impact:
The protocol and its Organizer suffer a functional Denial of Service (DoS) for specific memorabilia collections, as they can become permanently inaccessible if created as inactive.
The protocol and its Organizer suffer a lack of critical operational control, as they cannot pause or resume active collections, hindering their ability to respond to market changes, perform maintenance, or address issues.
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.