defirisk.co
rubric v1.7.0

Oracle staleness check present

Fluid's assessment for RD-F-059 — scored red on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.

Evidence summary #

Oracle staleness check ABSENT on Ethereum mainnet. ChainlinkSourceReader calls IChainlinkAggregatorV3.latestRoundData() and extracts only the exchangeRate (second return value), discarding updatedAt entirely. No comparison to block.timestamp or maxAge is performed. ChainlinkOracleImpl confirms the same — no updatedAt validation. RedstoneOracleImpl similarly has no timestamp freshness check. The StateMind audit (December 2023) explicitly noted the absence of staleness checks and recorded Fluid's accepted-risk decision: for mainnet, Fluid decided to accept the stale-data risk similar to Compound and Aave, with plans to implement checks on L2s. However as of the last commit (2026-03-04), no staleness check exists in chainlinkSourceReader.sol or chainlinkOracleImpl.sol. With AVAX/USD at 86400s heartbeat and 2% deviation, and USDT/USD at 86400s heartbeat, a stale price of up to 24 hours could be accepted without detection.

Sources #

Methodology #

Determine whether the protocol rejects oracle reads older than a declared maximum age (i.e., checks `updatedAt > block.timestamp - maxStaleness`).

See the full factor methodology and distribution across all protocols →

rubric_version v1.7.0 protocol fluid factor RD-F-059 score red collected_at 2026-04-29 10:35:01