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.