The SoulboundProfileNFT contract lacks input validation in the mintProfile
function, allowing users to create profiles with empty or invalid data. For a dating app, this is particularly problematic because:
Users can create profiles with empty names
Age can be set to 0 or unrealistic values
Profile images can be empty strings
No validation of string lengths or content
Users below the age of 18 can register.
Reduces platform credibility with empty/invalid profiles
Makes user discovery and matching ineffective
Poor user experience when viewing empty profiles
(https://github.com/CodeHawks-Contests/2025-02-datingdapp/blob/878bd34ef6607afe01f280cd5aedf3184fc4ca7b/src/SoulboundProfileNFT.sol#L30)
These validations ensure profile quality and improve the dating app experience by:
Improving matchmaking quality
Ensuring all profiles are meaningful and complete
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.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.