The protocol allows users to create profile NFTs with custom name and profileImage values.
These values are directly inserted into the generated JSON metadata inside tokenURI() without sanitization or escaping.
Because JSON special characters are not escaped, a malicious user can inject malformed JSON content into the metadata payload.
This may break NFT indexers, frontends, metadata parsers, or marketplaces attempting to render the NFT.
Likelihood:
Every user can fully control name and profileImage values during profile creation.
JSON special characters such as quotes (") and braces can easily be inserted into metadata fields.
Impact:
NFT metadata may become malformed or unparsable.
NFT marketplaces and indexers may fail to display affected NFTs.
Malicious metadata may disrupt frontend rendering or parser behavior.
The following test creates a profile using a maliciously crafted name field containing JSON-breaking characters.
When tokenURI() is generated, the resulting metadata contains malformed JSON due to the unescaped injected content.
User-controlled strings should be sanitized or JSON-escaped before insertion into metadata.
Special characters such as quotes, backslashes, and control characters should be escaped to ensure valid JSON generation.
Alternatively, metadata generation may be delegated to trusted off-chain infrastructure.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.