Normal behavior:
NFT metadata should be immutable after deployment to preserve its digital identity, ensure long-term trust, and uphold collector expectations.
Issue:
The s_SnowmanSvgUri variable is stored as a mutable state variable instead of using the immutable keyword. While there’s no direct function to change it, the variable could be modified via upgradeable patterns or redeployment, allowing the owner to silently alter NFT appearance and behavior.
Likelihood:
Low — Requires explicit redeployment or upgrade by the contract owner.
Reproducibility: Always possible under upgradeable or redeployable environments.
Ease of exploitation: Only the owner can trigger the change; requires contract control.
Impact:
Metadata manipulation: NFT appearances and definitions can be changed arbitrarily.
Collector trust violation: Users may see their NFT art or traits altered post-mint.
Protocol reputation damage: Trust in the fairness and transparency of the collection is diminished.
Resale/valuation collapse: Market participants may reject NFTs with mutable content.
Explanation:
NFT metadata is mutable via owner-controlled redeployment or proxy upgrade patterns.
A malicious or compromised owner can change token visuals, JSON data, or metadata content.
Holders cannot verify or trust long-term ownership representation.
Use an immutable variable for storing the base SVG or metadata URI. This ensures once deployed, no future changes are possible to the NFT’s metadata source.
Explanation:
Solution: Enforce one-time assignment of metadata URI during construction using immutable.
Security: Eliminates owner capability to alter visuals, text, or identity of the NFT post-deployment.
Efficiency: Slightly cheaper gas cost for immutable vs. storage access.
Compatibility: Seamless replacement that does not affect the external behavior of tokenURI().
This is a medium-severity vulnerability because it undermines NFT authenticity and may lead to reputational harm. By enforcing immutability of metadata, the protocol can demonstrate its long-term commitment to transparency and user trust.
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.