Prices: offchain oracle response liveliness not checked #21
Labels
Document Attack Pattern
Document an Attack Pattern not listed
documentation
Improvements or additions to documentation
Milestone
Offchain oracle response liveliness not checked.
No liveness checks are performed while retrieving oracle data. As a result, prices could
be outdated yet used anyways affecting deposits, borrows, repayments, and any other
source that relies on Chainlink’s prices.
The data retrieval from the rate conversion wrapper does not check the retrieved price
and the success condition. As a result, the
PriceFeedWrapper.latestAnswer()
couldreturn negative or invalid data yet used anyways across the market.
The mentioned function has the following implementation:
On the other hand, Auditor.assetPrice() is implemented as follows:
The low level staticcall function has two returns, a boolean success and bytes
data. Currently, the decoded rate has no rules as the price has in assetPrice(). Also,
there are no checks that ensure that the boolean return is true.
Recommendation
Check both the boolean return and the retrieved rate if possible.
The text was updated successfully, but these errors were encountered: