Liquid Staking

Stakelink
DeFiHardhatOracle
50,000 USDC
View results
Submission Details
Severity: medium
Invalid

Missing Reentrancy Guards in performUpkeep()

Summary

The performUpkeep(bytes _performData) function in the LSTRewardsSplitterController contract lacks reentrancy guards, exposing it to potential read-only reentrancy attacks.

Vulnerability Details

In the performUpkeep() function, external calls are made to splitters[accounts[i]].performUpkeep(""). Without appropriate reentrancy protection, this allows an external contract to interact back with the original contract before its execution completes.

Impact

Failure to implement reentrancy guards can lead to unexpected behavior, including the risk of stale data being read and manipulated during the execution of external calls, potentially compromising the contract's integrity.

Tools Used

  • Manual code review

Recommendations

Apply a reentrancy guard (such as the nonReentrant modifier from OpenZeppelin) to the performUpkeep() function to prevent unintended reentrant calls.

Line Reference: LSTRewardsSplitterController.sol, Line: 99

Updates

Lead Judging Commences

inallhonesty Lead Judge 12 months ago
Submission Judgement Published
Invalidated
Reason: Lack of quality

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.