splitRewards should include a non-reentrant mechanism to prevent fee receivers from receiving more rewards than they should
As LST is an ERC677 token, in the _splitRewards(uint256 _rewardsAmount) function, lst.safeTransfer(fee.receiver, amount) is called first, followed by updating principalDeposits = lst.balanceOf(address(this)). This sequence allows the fee receivers to potentially engage in reentrancy and receive additional rewards
fee receivers got wrongly rewards
Manual code review
Include a non-reentrant mechanism in splitRewards().
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.