Despite having a check to not allow the account creator to reference himself, this is still possible due to the fact that accounts are transferrable ERC721 tokens.
It was mentioned that the main idea of referrals is for KOLs, i.e. to attract more activity by incentivizing users to refer the product, and in exchange they will receive a 1.2x boost of their points as mentioned in the Zaros documentation. The problem is that users can game the system by transferring the account to the same person who is passed as a referral. This can also be leveraged by creating multiple accounts with the same referral and transferring all of them.
Here we can see TradingAccountBranch::notifyAccountTransfer
and how it doesn’t check for referrals at all:
Here is a coded PoC:
Bypassing referral restrictions that prevent trader from referring himself.
Manual Review
Add checks whether the referrer is the new admin of the positions in notifyAccountTransfer
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.