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.