Impact: Medium
Likelihood: Medium
Severity: Medium
The SoulboundProfileNFT::blockUser
function deletes a user's profile without refunding any locked funds.
By introducing this centralized function, a malicious contract owner could arbitrarily block users and lock their funds without any recourse. This could be perceived as an unethical practice, reducing trust in the protocol.
The following test demonstrates that a blocked user does not receive any funds back, effectively locking them in the contract:
Manual Review
If the protocol is designed to be centralized, blocking an account should be limited to cases where the user violates specific terms and conditions, such as using an inappropriate name or profile picture. Without clear guidelines, arbitrary blocking and fund locking could be perceived as unethical.
Alternatively, a more user-friendly approach would be to implement a slashing mechanism, similar to Ethereum’s penalties for malicious stakers. Instead of locking the full balance, the contract could impose a partial penalty while allowing users to reclaim a portion of their funds.
Likelihood: Low, burning with money in it would be a user mistake, and being blocked is Low. Impact: High, loss of funds
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.