FundFlowController::getDepositData()and FundFlowController::getWithdrawalData() which are supposed to return the encoded Vault deposit order and Vault withdrawal orders for strategies, are intended to be used in the PriorityPool while depositing into / Withdrawing from StakingPool which further interacts with the OperatorVCS and CommunityVCS , are not used anywhere inside the PriorityPool.
The FundFlowController::getDepositData()and FundFlowController::getWithdrawalData() functions which passes on deposit and withdrawal data for various deposit and withdrawal operations in the PriorityPool is not used anywhere in the PriorityPool contract neither there is a instance of FundFlowController in the Protocol .
This is catastrophic as it leads to the flow of funds to be completely disrupted by random , corrupted or invalid/wrong data being passed on to StakingPool .
PriorityPool::deposit()takes in the _dataparameter which is intended to be vault deposit order. It leads to incorrect data being passed on to StakingPool .
PriorityPool::executeQueuedWithdrawals() also takes _dataparameter i.e The Withdrawal Order for vault strategies.
Will lead to disruption of the whole protocol functionality as vault orders will be disrupted leading to reverting and failing of many functionalities .
Manual Code Review
Retrieve the _data for deposit and withdrawal orders from FundFlowController through the getWithdrawalDataand getDepositData and include checks to verify the correct data is being passed to the functions in PriorityPool .
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.