★ Immutable oracle address
Morpho V1 (Morpho Blue + MetaMorpho)'s assessment for RD-F-180 — scored red on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
[★ CRITICAL — T-14 promoted 2026-04-22] Oracle address immutable at market creation. MarketParams.oracle field is part of the market ID hash — changing it creates a new market. No setOracle function on core (0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb). ChainlinkOracleV2 feeds are Solidity immutable variables with no admin setter. PAXG/USDC exploit ($230K, Oct 2024) realized consequence. Note: docs.morpho.org page renamed from 'Morpho Market V1' to 'Variable Rate Market (Morpho Blue)' between April-May 2026 — structural immutable-oracle claim unchanged in new framing.
Detail #
Morpho Blue docs: 'Once a market is deployed, its oracle address cannot be modified.' MarketParams struct hashed for market ID — oracle is a structural parameter. The MorphoChainlinkOracleV2 contract stores BASE_FEED_1, BASE_FEED_2, QUOTE_FEED_1, QUOTE_FEED_2 as immutable state variables. Factory deploys via CREATE2 with fixed parameters. No admin can change a deployed oracle without deploying a new market and migrating users. The PAXG/USDC incident required creating a new market to remediate. F180 definition: oracle source address not programmatically replaceable by admin action without full upgrade — MET at both the market-param level (Morpho Blue core design) and the oracle-contract level (immutable feed variables in ChainlinkOracleV2). Wave B.4 fix (2026-05-07): docs.morpho.org/learn/concepts/market/ redirected to 'Variable Rate Market (Morpho Blue)' content but the structural claim still holds; pinned Wayback snapshot preserves the original V1-named attestation, and the Etherscan + Morpho.sol + PAXG/USDC retrospective sources independently support the immutability.
Sources #
- EtherscanMorpho Blue Core — EtherscanMorpho Blue core 0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb — no setOracle functionretrieved 2026-04-27
- Morpho Chainlink Oracle USDC-wstETH — EtherscanChainlinkOracleV2 0x48F7E36EB6B826B2dF4B2E630B62Cd25e89E40e2 — immutable feed variables, no adminretrieved 2026-04-27
- Morpho.sol — createMarketMorpho.sol — MarketParams struct, oracle as immutable market parameterretrieved 2026-04-27
- Market — Morpho Docs (market immutability)Morpho market docs — 'Once a market is deployed, its oracle address cannot be modified'retrieved 2026-04-27
- https://web.archive.org/web/2026*/https://docs.morpho.org/learn/concepts/market/retrieved 2026-05-06
- Retrospective: PAXG/USDC market oracle configuration — Morpho Governance ForumPAXG/USDC oracle retrospective — immutable oracle cannot be corrected, $230K lossretrieved 2026-04-27
Methodology #
Determine whether any collateral oracle address is marked `immutable` in protocol config with no admin-replaceable adapter wrapper, preventing the protocol from repricing when the upstream asset depegs.
See the full factor methodology and distribution across all protocols →