Description: The README states that both whitelisted and non-whitelisted users can list NFTs. However, list() is gated by onlyWhitelisted, blocking non-whitelisted users from a function they are entitled to use. Additionally, list() is missing the onlyWhenRevealed modifier, allowing listings to be created before the collection is revealed, which contradicts the two-phase design.
README: "Non whitelisted user/wallet [...] buy, update price, cancel listing, list NFT"
README: "The protocol is revealed [...] users that are whitelisted can now list NFTs for secondary sell"
Impact: Non-whitelisted users cannot access a core feature they are entitled to. Listings can also be created prematurely before the reveal phase.
Proof of Concept:
A non-whitelisted user who legitimately owns an NFT (e.g. bought it or received it) is blocked from listing it, despite the README explicitly granting them this right.
Run forge test --match-test test_poc_M2 -vvv to see the following output:
Recommended Mitigation: Remove onlyWhitelisted and add onlyWhenRevealed to list().
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.
The contest is complete and the rewards are being distributed.