Fallback behavior on oracle failure
Cap (cUSD / stcUSD)'s assessment for RD-F-051 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
PriceOracle.sol implements primary/backup fallback: if primary oracle returns zero or is stale (block.timestamp - lastUpdated > staleness[asset]), backup oracle is queried. If both fail, reverts with PriceError. Docs confirm mint/burn disabled on stale prices. Yellow because RateOracle.sol _getRate() silently returns (0, 0) on adapter call failure rather than reverting — a zero rate propagating through interest calculations could cause mispriced borrowing if not handled by callers.
Sources #
- GitHubPriceOracle.sol fallback implementationPriceOracle.sol getPrice() function: primary oracle attempt, fallback to backup if zero/stale, revert on both failureretrieved 2026-05-17
- Cap documentation on oracle stale behaviordocs.cap.app: 'Mint and burn functions are disabled if Oracle prices are stale, until Oracles are back in sync'retrieved 2026-05-17
Methodology #
Identify the declared fallback behavior (pause, secondary source, last-known-price, revert) when the primary oracle reverts or reports a stale value.
See the full factor methodology and distribution across all protocols →