The SoulboundProfileNFT contract's mintProfile
function lacks validation to check if profile parameters already exist, allowing malicious users to impersonate others. This is particularly severe in a dating context because:
Attackers can create profiles with identical names, ages, and images as existing users
Combined with vanity addresses (similar looking addresses), this enables sophisticated impersonation
No uniqueness checks on profile data allows multiple copies of the same identity
Identity theft and impersonation of popular profiles
Users can be scammed by believing they're interacting with legitimate profiles
Loss of trust in the platform's verification system
Potential for social engineering attacks
Emotional and financial harm to users who fall victim to impersonators
()
Vanity address Generator: ()
article by Certik on Vanity address: ()
Add mappings to track used names and images by hashing them
Add verified badge for confirmed identities
Add reporting system for impersonators
Implement profile verification system
These changes help prevent identity theft by:
Ensuring profile uniqueness
Making impersonation more difficult
Providing ways to verify legitimate users
Enabling the community to report fake profiles
Manual Review + Foundry Testing Framework
Scamming/phishing is not the protocol problem, that's a user mistake. NFT are unique, even if someone does a copy of your profile (which is also possible in web2), I consider it informational. Injection is a problem for the web2 part of the protocol, not a bug here. For the age, it depends on the countries law and future medicine. Anyways, that's more an ethical/political problem, not a bug.
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.