Liquid Staking

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

updateStrategyRewards() is broken

Summary

updateStrategyRewards() is broken

Vulnerability Details

updateStrategyRewards() distributes rewards/fees based on balance changes in strategies since the last update. It is only called by rebaseController & strategy should exist. But the problem is while verifying strategy, instead of passing strategy address, it passes rebaseController address ie msg.sender.

function updateStrategyRewards(uint256[] memory _strategyIdxs, bytes memory _data) external {
@> if (msg.sender != rebaseController && !_strategyExists(msg.sender)) {
revert SenderNotAuthorized();
}
_updateStrategyRewards(_strategyIdxs, _data);
}

Impact

updateStrategyRewards() will be DoS

Tools Used

Manual Review

Recommendations

Pass strategy address to _strategyExists(), instead of passing rebaseController address

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 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.