LSTRwardsSplitter::constructor does not check the total fee limit here
Since there is no check for the fee limits the fee receivers will not receive the correct amount of fees.
Whenever LSTRwardsSplitter::_splitRewards is executed the transaction will distribute rewards incorrectly or revert due to a lack of token balance in the contract. Here is the _splitRewards code
Lets say the array of fees is set in the constructor like this:
[50000, 25000, 25000]
In the example above whenever the LSTRwardsSplitter::_splitRewards is executed 5x _rewardsAmount will go to the receiver at index zero, and 2.5x _rewardsAmount will go to index 2 and 3. This will revert if the principalDeposits is not enough to cover the withdrawal otherwise the transaction will be successfull and the LSTRwardsSplitter will be incorrectly drained of funds.
Manual review and Foundry
Make the following change in the contract LSTRwardsSplitter::constructor
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.