The function SystemConfig.updateReferrerInfo is publicly accessible to all. This means anyone can manipulate data stored in referralInfoMap as long as msg.sender != _referrer.
The referrerInfo.referrerRate can be changed by any user who to reduce the referral rewards for the referrer.
Referrers rewards distribution will be impacted/reduced.
Manual Review
The mapping referralInfoMap should be split into tow maps. One map should map referee to referrer and referrer to related data such as referrerRate and authorityRate.
The function SystemConfig.updateReferrerInfo should also be split.
Recommended code:
These changes should also reflect at: https://github.com/Cyfrin/2024-08-tadle/blob/main/src/core/PreMarkets.sol#L199-L201
Valid high severity. There are two impacts here due to the wrong setting of the `refferalInfoMap` mapping. 1. Wrong refferal info is always set, so the refferal will always be delegated to the refferer address instead of the caller 2. Anybody can arbitrarily change the referrer and referrer rate of any user, resulting in gaming of the refferal system I prefer #1500 description the most, be cause it seems to be the only issue although without a poc to fully describe all of the possible impacts
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.