Low
High
burnProfile() deletes the NFT, but stale likes remain and block future interactions after reminting.
The expected behavior is that burning a profile fully removes that profile's active dating state, so a user who later mints a new profile can interact as a fresh participant.
Instead, burnProfile() only clears NFT ownership and metadata in SoulboundProfileNFT, while LikeRegistry keeps likes[msg.sender][liked] = true. As a result, a reminted user inherits stale relationship state and can be prevented from liking the same user again.
Likelihood:
This occurs during the normal lifecycle where a user likes another profile, burns their profile, and later mints a new one.
The stale state persists automatically because burnProfile() does not trigger any cleanup in LikeRegistry.
Impact:
A reminted profile can be blocked from performing valid interactions because it inherits the previous profile's like state.
This makes profile deletion incomplete and leaves the protocol in an inconsistent cross-contract state.
The following test shows that after burning the original profile and minting a new one, the user is still treated as having already liked the same target because likes[msg.sender][liked] was never cleared in LikeRegistry.
Do not allow burnProfile() while the user still has active registry state, unless the protocol is redesigned to track and safely clear all dependent likes and matches.
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.