The rewardThreshold in the LSTRewardsSplitterController contract is intended to prevent frequent or minimal reward splitting. However, if not correctly enforced, it can lead to unintended behaviors or exploitations.
In LSTRewardsSplitterController.sol, the checkUpkeep function determines if performUpkeep should be called based on reward thresholds:
The actual enforcement of rewardThreshold occurs within each splitter:
Insufficient threshold enforcement can lead to frequent, minimal distributions, increasing gas costs and user inconvenience. Attackers might manipulate or exploit thresholds to gain disproportionate rewards or disrupt the intended reward distribution schedule.
Manual Code Review
Consider enforcing rewardThreshold at the controller level to ensure consistent application across all splitters. Validate _performData validation of the encoded data in performUpkeep to prevent manipulation or unintended function executions.
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.