The LikeRegistry
contract contains a critical issue where the userBalances
mapping is never updated when users send ETH via the likeUser
function. As a result, all ETH sent remains stuck in the contract without a way to withdraw or transfer it.
All ETH sent by users remains locked within the contract since userBalances
is never updated.
Users cannot retrieve their ETH, resulting in a financial loss.
The contract does not implement a way to utilize or distribute these funds, making them permanently inaccessible.
Deploy the LikeRegistry
and SoulboundProfileNFT
contracts.
Create two users (user
and user2
) and mint profile NFTs for them.
Have user
send 2 ETH when calling likeUser(user2)
.
Check the contract balance and observe that it contains 2 ETH, while userBalances[user]
remains 0
.
The ETH is permanently locked inside the contract.
Modify the likeUser
function to properly update userBalances
when ETH is sent:
High: Funds are permanently locked with no way to retrieve them.
This vulnerability results in ETH being stuck in the contract, preventing users from reclaiming their funds. The recommended fix ensures that userBalances
correctly tracks ETH sent, preventing the loss of funds.
Likelihood: High, always. 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.