In the LiquidationPool::distributeAssets()
function, there are two calls to the Chainlink price feeds using latestRoundData()
function. Both of these lack a check for stale price.
Lack of stale price cheks in the following function.
As the price feeds might become stale due to variety of reasons it might cause incorrect distribution of assets, negatively impacting the reliability of the protocol for the stakers.
Moreover, PriceCaulculator
contract would be impacted. Even though it's out of scope it needs to be emphasized that lack of sufficient validation after latestRoundData
calls might cause arbitrary collateral manipulation by users exploiting the resulting price slippage.
Manual review
Verification that the parameter updatedAt
read from the latestRoundData()
calls is not older than a set amount of time timeBuffer
.
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.