The owner of a splitter can prevent the owner of the splitter controller from removing the splitter contract by setting one of the receivers to the zero address. Additionally if the owner of the splitter contract is initially set to address zero it cannot be removed since the transfer will revert whenever the contracts remaining balance is sent to owner which will be address zero.
Here is the code where we can set the receiver:
Also here is the code where the splitter is removed in the splitter controller:
The owner of the splitter can prevent the owner of the splitter controller from removing the splitter from the contracts mapping.
Whenever the LSTRewardsSplitterController::removeSplitter is called the token will attempt to be transferred to the zero address which will revert.
Lastly, the owner of the splitter contract can remove the zero address fee receiver to collect rewards and add it back whenever they want to prevent LSTRewardsSplitterController::removeSplitter execution.
Splitter contract cannot be removed from the Splitter Controller contract.
Foundry and manual review
Add a zero address whenever setting the owner of the splitter contract and when adding a fee receiver.
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.