StakingPool contract owner can unknowingly withdraw more than the available withdraw room of the strategy via StakingPool::strategyWithdraw
The function strategyWithdraw in the StakingPool contract allows the owner to manually withdraw asset tokens from the specified strategy.
But the strategies are intended to have a minimum deposits in them, which can be calculated via Strategy::canWithdraw()
As there is no IStrategy(strategies[_index]).canWithdraw() check, it allows the StakingPool contract owner to unknowingly withdraw more than the minimum amount of tokens required in the contract.
Strategy contracts like CommunityVCS, OperatorVCS and others (including future strategy contracts) will hold a risk of getting withdrawn more tokens than intended.
Manual review
It is recommended to add a IStrategy(strategies[_index]).canWithdraw() check before withdrawing.
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.