In LiquidationPool.sol, latestRoundData() is used but there is no check to validate if the return value contains fresh data. Proper checks should be applied to prevent the use of stale price data.
Chainlink data from latestRoundData() is used in distributeAssets(). There is no check performed on the return data to check if the price is valid.
latestRoundData() can return stale price data. The contract using this data should properly check the price data is fresh.
This could lead to stale prices according to the Chainlink documentation:
https://docs.chain.link/docs/historical-price-data/#historical-rounds
https://docs.chain.link/docs/faq/#how-can-i-check-if-the-answer-to-a-round-is-being-carried-over-from-a-previous-round
The incorrect pricing might cause the function to calculate costInEuros inaccurately which may lead the variable to be calculated below the expected price or above the calculated price.
Manual Review
Add more checks to prevent stale pricing data from being used.
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.