Beatland Festival

First Flight #44
Beginner FriendlyFoundrySolidityNFT
100 EXP
View results
Submission Details
Severity: low
Valid

Collection remains permanently inactive due to the absence of a status update mechanism

Root + Impact

Description

  • Each MemorabiliaCollection struct contains a isActive field indicating whether redemption is currently enabled for this collection.

  • By observeing the contract code (e.g., see where does keyword isActive appear), we can find that while this field is set during creation, the current implementation lacks a mechanism to update it once initialized.

Risk

Likelihood:

  • Once a collection is created and initialized as inactive, it becomes irredeemable and effectively dead

Impact:

  • User Confusion and Trust Erosion: Users may perceive the system as unreliable if seemingly valid collections are non-functional, damaging platform trust

Proof of Concept

Simply run the existing test test_RedeemMemorabilia_CollectionNotActive()

Recommended Mitigation

  • Add a function only callable by organizer to set collection's status, for example:

    fucntion activateCollection(uint256 collectionId, bool isactive) external onlyOrganizer {
    require(collections[collectionId].priceInBeat > 0, "Collection does not exist");
    collections[collectionId].isActive = isactive;
    }
  • Introduce a time-based mechanism that automatically updated the collection’s status based on its configured activation timestamp.

Updates

Lead Judging Commences

inallhonesty Lead Judge 10 months ago
Submission Judgement Published
Validated
Assigned finding tags:

createMemorabiliaCollection with isActive false for later usage - flow not properly implemented.

Low because an organizer can use it with active = true and organizer is trusted.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!