-
Notifications
You must be signed in to change notification settings - Fork 7
0xHelium - Malicious user can spam create profiles for other users #7
Comments
1 comment(s) were left on this issue during the judging contest. n33k commented:
|
This is a low severity finding.
Creating up to type(uint256).max number of profiles costs too much gas that no one can afford. For owner to use the malicious profile, an extra spam step is required. So I would categorize it as low severity. |
Escalate
|
The escalation could not be created because you are not exceeding the escalation threshold. You can view the required number of additional valid issues/judging contest payouts in your Profile page, |
Would call this out as a medium severity @quentin-abei |
Escalate on behalf of sponsor and watson. Since sponsor agree with a medium. |
You've created a valid escalation! To remove the escalation from consideration: Delete your comment. You may delete or edit your escalation comment anytime before the 48-hour escalation window closes. After that, the escalation becomes final. |
This statement below says if creator can trick the victims he can scam them, but it has no relation to any issue within the protocol at all. Unless the watson can prove a explicit loss of funds/breaking of core functionality due to this issue, I am finding it hard to see the medium severity for this issue, because the necessary access control is in place for profiles and the creator will just spend a ton of unnecessary gas. Could you care to elaborate @thelostone-mc ?
|
Let me explain how a malicious user can cause a loss of funds with this exploit:
Because of the above steps, i consider my issue at least a valid medium. |
Escalate I still don’t see how its Medium severity. It is users responsibility to verify that they are funding the correct pool. Even with the fix implemented by sponsor, if malicious profile creators intend to scam users, they can still market themselves as ‘vitaliks’ address. IMO this falls under user input error and my discussion here is done, will let @hrishibhat decide. |
You've created a valid escalation! To remove the escalation from consideration: Delete your comment. You may delete or edit your escalation comment anytime before the 48-hour escalation window closes. After that, the escalation becomes final. |
This will be also my final say:
I'am writing this with a little heartbreak because i asked @nevillehuang to escalate this for me after sponsor ack a medium severity, he ghosted me , so i asked @neeksec who accepted to escalate even though he is not okay with the severity, and now @nevillehuang come to try to invalidate this by using irrelevant arguments. This is pure evil! |
Ser with all due respect I did not ghost you, this is my response to you, in fact i do not see any message sent by u to me. Please avoid directing negative emotions/insults because I have never done that to you. Lets keep this positive and only leave factual based opinions here. If you have any personal things to say to me please DM, its all love. |
Suggest to keep the original judging. This issue indeed assists in scams. Since there is no direct risk to funds and it requires scam steps to steal funds from others, I think this should be considered a low risk. |
To add to my already written comments , here is sherlock medium issue criteria :
I already exolained a very likely case where an attack will occur . Also from the Sherlock docs :
My issue tick all the boxes, it should be a medium. |
Planning to keep issue closed. The issue described is not a solidity issue, it's a user issue. Similar situation, I can create a Uniswap pool and remove all LP tokens. This is not a bug in Uniswap. |
The issue you are trying to compare this issue with does simply not match . |
The issue is not a smart contract issue, but a business logic issue. |
Result: |
Escalations have been resolved successfully! Escalation status:
|
Since Sherlock is reconsidering it's "final" judgement see here it means it's not "final" anymore and my issue should be reconsidered for a medium at least based on the above comment on discord from jack himself. |
0xHelium
medium
Malicious user can spam create profiles for other users
The
Registry.createProfile()
allow any person to create profile for anyone else without any limitation.This open door for spammer to show off their spam artist talents.Vulnerability Detail
The
Registry.createProfile()
allow any person to create profile for anyone else without any limitation. Because of the way this protocol intend to be used , the person who the malicious user created the profile for can use that profile just by having the Id whiich was created from the keccak256 hash of the malicious user account and a random nonce; Although the the person who the malicious user created the profile for is not directly exposed to a loss of funds, this is still an issue as a spammer can create up totype(uint256).max
number of profiles for the same victim account.Impact
Copy and paste this function into
Registry.t.sol
and run the test, it passes , so a spammer can create as many profile as he wants for his victims, and if by any mean he can trick the victims into using the profile Id, there is a possibility that he scams the victims.
Code Snippet
https://github.com/sherlock-audit/2023-09-Gitcoin/blob/main/allo-v2/contracts/core/Registry.sol#L119-L168
Tool used
Manual Review
Recommendation
I recommend ensuring only the caller can create a profile for
owner
param. This can be done by reverting the function if owner param is not msg.sender.The text was updated successfully, but these errors were encountered: