The FlowNFTDescriptor.tokenURI()
function does not validate token existence before returning metadata, violating the ERC721 Metadata specification. This allows metadata queries for non-existent tokens, potentially enabling misleading representations of fake streams.
The current implementation in FlowNFTDescriptor.sol
returns metadata without any validation:
This violates the ERC721 Metadata specification which requires the function to revert for non-existent tokens:
Protocol Security:
Enables querying metadata for non-existent streams
Allows fake Sablier Flow contracts to generate legitimate-looking metadata
Could be exploited in phishing attacks by presenting fake streams as legitimate
Standard Violation:
Direct violation of ERC721 Metadata specification
May cause integration issues with tools expecting standard compliance
User Experience:
Users cannot distinguish between real and non-existent stream metadata
Potential for confusion and misrepresentation of stream status
Manual code review
Add token existence validation
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.