The FundFlowController
constructor recieves the current unbonding period
value used in the chain link Stakie.sol
contract, but the problem here is that the unbonding period can also be updated; this will affect all the operations of 'FundFlowController.` More details are given in the subsequent section.ngPoolBas
Upon reviewing the FundFlowController
code, we found that the unbonding period is set within the initialization process. However, there is no setter function available to update the unbonding period if it changes in the chain link staking contract.
Now, let's take a look at the chain link staking pool base, where they have implemented a function to update the unbonding period
A limit check is in place to control the extent to which the claim period can be updated.
current claim Period : 728 days
, but it can be changed to any value between >0 to 60 days.
The following functions of FundFlowController
and VaultDepositController
contract functions will be affected:
claimPeriodActive
updateVaultGroups
VaultControllerStrategy:withdraw
VaultControllerStrategy::getMinDeposits()
Since the unbonding period can be increased or decreased, it may result in a DoS for unbonding operations.
The claimPeriodActive
function may return incorrect responses.
The withdraw
function could face a DoS issue, as the protocol might assume it can withdraw funds when, in reality, it cannot.
Manual Review
Instead of storing the unbondingPeriod
within the FundFlowController
contract, use the StakingPoolBase::getUnbondingParams
function, which will always return the current unbondingPeriod
.
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.