Missing proper access control in the LiquidationPool.distributeAssets function.
It appears that the LiquidationPool.distributeAssets function is intended to be exclusively callable by the LiquidationPoolManager as part of the liquidation process initiated by LiquidationPoolManager.runLiquidation. However, currently, the LiquidationPool.distributeAssets function lacks access control. This oversight allows any user to call it with arbitrary parameters. These parameters include:
_assets array, which specifies the tokens and amounts to be distributed along with the price feed for price determination.
_collateralRate, utilized in calculating the costInEuros.
_hundredPC, a factor in the costInEuros calculation, which must be a constant (1e5)
The LiquidationPool.distributeAssets function requires token approval by the LiquidationPoolManager before transferring tokens from it. Because of this, no immediate vulnerabilities compromising the protocol are currently evident. However, future upgrades may introduce significant issues if this function remains unregulated.
Manual Review
To mitigate this issue, it is recommended to implement the onlyManager modifier in the distributeAssets function.
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.