Due to loops over the unbounded holders
and pendingStakes
arrays, the following functions will be in a state of DoS:
LiquidationPool::getStakeTotal
: DoS due to loop over holders
array leading to a potential DoS in LiquidationPool::distributeAssets
which can block all liquidations.
LiquidationPool::getTstTotal
: DoS due to loops over the holders
and pendingStakes
arrays leading to a potential DoS in LiquidationPool::distributeFees
which can block all liquidations and prevent stakers from calling LiquidationPool::increasePosition
and LiquidationPool::decreasePosition
.
LiquidationPool::deleteHolder
: Potential DoS due to loop over the holders
array leading to a potential DoS in LiquidationPool::decreasePosition
, preventing stake removal.
LiquidationPool::deletePendingStake
: Potential DoS due to loop over pendingStakes
array leading to potential DoS in LiquidationPool::consolidatePendingStakes
which leads to a potential DoS in LiquidationPool::increasePosition
, LiquidationPool::decreasePosition
and LiquidationPool::distributeAssets
preventing stake addition/removal and prevent all liquidations.
LiquidationPool::addUniqueHolder
: Potential DoS due to loop over holder
array leading to DoS potential in LiquidationPool::increasePosition
, preventing stake addition.
LiquidationPool::distributeFees
: DoS potential due to loops over the holders
and pendingStakes
arrays, preventing stake from being added/removed and preventing liquidations.
LiquidationPool::distributeAssets
: DoS potential due to loop over the holders
array, preventing all liquidations.
For example, the following snippet shows the loop over the unbounded holders
array in LiquidationPool::distributeFees
:
This will prevent all liquidations and prevent stakers from adding/removing to/from the liquidation pool.
Stakers will not be able to increase/decrease their positions. Liquidations are also blocked. Therefore, this is a high-severity finding.
Avoid looping over unbounded arrays.
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.