The list() function allows NFT owners to create marketplace listings. Only whitelisted users can call it, enfored by onlyWhitelisted modifier. NFT transfers via transferFrom have no corresponding whitelist restriction.
When a whitelist user transfers an NFT to a non-whitelisted address, the new owner cannot list the NFT on the marketplace. The NFT is effectively trapped - the owner holds it but has no way to sell it through the protocol.
According to protocol documentation, non whitelisted users should have access to the following actions
Likelihood: High
Any whitelisted user can freely transfer their NFT to a non-whitelisted address with no special conditions.
A whitelisted user could be removed from the whitelist after already holding an NFT, leaving them unable to list their own token.
Impact: High
The non-whitelisted owner's NFT is permanently unlistable via the protocol, stranding the asset and any associated collateral.
User trust and token value are harmed - buyers cannot rely on being able to re-sell tokens acquired through secondary transfers.
Remove teh onlyWhitelisted modifier from the list() and instead verify only that the caller ownns the NFT.
Alternatively, if the whitelist is intentional for all interactions, restrict transferFrom/safeTransferFrom to only allow transfers to whitelisted addresses.
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.