Wrong oracle price can be reported for an extended period of time because the TIMEOUT safeguard is not able to handle all oracles’ heartbeat.
Different oracles have different heartbeat. For instance, the WBTC-USD oracle has a heartbeat of 5 minutes and the AMPL-USD oracle has a heartbeat of 2 days. A TIMEOUT value of 3 hours should only be applicable to oracles with a heartbeat of 3 hours. There should never be an instance when it is okay to use a stale price.
For example, if we were to use WBTC as a collateral to mint DSC and the WBTC-USD oracle has a 5 minute heartbeat. The TIMEOUT should be 5 minutes and not 3 hours because it is entirely possible that within these 3 hours, the price of WBTC may have crashed and the oracle is down but when OracleLib queries the price, it will treat it as a valid price. This will allow users to mint more DSC than expected because the WBTC collateral is worth more.
User’s may be able to mint more DSC than expected because the collateral is reporting an outdated price that is higher than the true price.
User’s may not be able to mint without compromising their health factor because the collateral is reporting an outdated price that is lower than the true price.
Manual Review
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.