Perform upkeep function can be DoSed due to revert keyword in for loop
Perform upkeep functionality is used for updating the state variable of the LSTRewardSplitter
. But it can also DoSed by frontrunning due to revert keyword in upkeep function in splitters.
In attack scenario, whenever performUpKeep() function is called by someone, front-runner can call upkeep only for one splitter and it will revert in revert threshold check.
Actually, the attack vector doesn't need an attacker in order to cause a DoS. All the function in here are public and most likely will be used by the users. So any upkeep call can affect another users upkeep call from controller which will cause DoS without attacker. In my professional point of view, try and catch in this for loop will keep all the splitters updated and avoid from DoS
Manual Review
Applying try,catch mechanism and doesn't reverting in failure will prevent the DoS
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.