defirisk.co
rubric v1.7.0

Default bytes32(0) acceptable as valid root

A cross-chain & bridge factor in the v1.7.0 rubric. Measured per protocol on a s cadence.

Critical factor. A Red on this factor alone is sufficient to gate a protocol to grade D or F regardless of other category rollups.

Methodology how we score #

**What this measures** This factor checks whether a bridge inbox or Merkle proof verifier accepts the 32-byte default value (`bytes32(0)`) as a valid committed root. A correctly implemented verifier initialises its accepted-root mapping to a non-default sentinel and admits only roots that have passed through the validator submission and timing queue. Static analysis of the bridge inbox contract is the primary assessment method. This factor applies only to bridge-touching protocols; non-bridge protocols show this factor as N/A.

**Why it matters** The Nomad bridge $190M hack of August 2022 is the definitive instance of this failure mode. A routine upgrade inadvertently initialised the `confirmAt` mapping such that `bytes32(0)` was treated as a valid committed root, allowing any caller to submit a Merkle proof against the zero root and immediately pass verification — requiring zero cryptographic knowledge of the validator set. The attack required no exploiter sophistication; it was replicated by hundreds of independent copycats within hours of the first drain. Default-value trust is a recurring class of smart contract bugs where uninitialised or zero-default state transitions from "unset" to "implicitly valid," and bridges are especially exposed because the proof-submission path is permissionless by design.

**Green / Yellow / Red** Green is scored when the verifier explicitly rejects `bytes32(0)` and only admits roots that passed through the submission and timing queue. Yellow is scored when the check exists in production code but a prior upgrade or migration introduced a window during which zero roots were transiently valid. Red is scored when `bytes32(0)` is accepted as a valid root in the current deployed code.

**Common gray cases** Gray is applied when the bridge uses a closed-source or partially-verified verifier module and the root-acceptance logic cannot be confirmed through static analysis.

**Notable historical examples** No cross-hacked incidents are currently linked in the database for this factor.

**★ Critical factor** This factor alone is sufficient to trigger a D or F grade under rubric v1.7.0. Accepting the default zero value as a valid Merkle root entirely nullifies the bridge's proof system, enabling permissionless, unauthenticated asset extraction — as demonstrated by the $190M Nomad exploit.

Measurement what to look for #

Determine whether the bridge inbox accepts a default-value (bytes32(0)) Merkle root as a valid proof root (Nomad bug class).

Data & output #

Data source
Source inspection of root acceptance logic on Etherscan-verified source: check for explicit `require(root != bytes32(0))` guard
Output format
Green / Yellow / Red · critical gate active
Evidence artifact
Source excerpt of root acceptance logic + zero-root guard presence
Confidence signal
green = bytes32(0) explicitly rejected as invalid root; red = bytes32(0) accepted as valid root; gray = bridge source unverified

Scored protocols 80 carry this factor #

Protocol RD-F-154
Aave v3 ethereum green Across Protocol ethereum yellow Aerodrome Finance base not_applicable Axelar Network ethereum green Babylon Protocol bitcoin not_applicable Balancer (v2 + v3) ethereum not_applicable Beefy Finance ethereum green BENQI avalanche not_applicable BlackRock USD Institutional Digital Liquidity Fund (BUIDL) ethereum not_applicable Cap (cUSD / stcUSD) ethereum not_applicable Centrifuge ethereum green Chainlink CCIP ethereum green Circle USYC binance not_applicable Compound V3 (Comet) ethereum green Concrete ethereum green Convex Finance ethereum not_applicable crvUSD (Curve Stablecoin) ethereum not_applicable Curve Finance ethereum not_applicable deBridge ethereum green Dolomite ethereum green dYdX v4 (dYdX Chain) dydx not_applicable EigenLayer ethereum not_applicable Ethena ethereum green ether.fi ethereum green Euler V2 ethereum not_applicable Falcon Finance ethereum not_applicable Fluid ethereum green Frax Finance ethereum yellow GMX v2 (GMX Synthetics) arbitrum not_applicable Hyperlane ethereum yellow Hyperliquid arbitrum green Jito solana not_applicable Jupiter solana not_applicable Jupiter Perpetual Exchange solana not_applicable JustLend DAO tron not_applicable Kamino Lend solana not_applicable Kinetiq hyperliquid not_applicable Lido ethereum green Liquid Collective (LsETH) ethereum not_applicable Liquity V1 + V2 (LUSD / BOLD) ethereum not_applicable Lista DAO bsc green Lombard Finance ethereum green M^0 ethereum green Maple Finance ethereum green Marinade Finance solana not_applicable Meteora solana not_applicable mETH Protocol ethereum green Midas ethereum not_assessed Morpho V1 (Morpho Blue + MetaMorpho) ethereum not_applicable Multipli ethereum gray Ondo Finance ethereum green OpenEden ethereum not_applicable Orca solana not_applicable PancakeSwap bsc not_applicable Pendle Finance ethereum green Polymarket polygon not_applicable QuickSwap polygon not_applicable Raydium solana not_applicable Rocket Pool ethereum not_applicable Sanctum solana not_applicable Save (formerly Solend) solana not_applicable Sky Lending (formerly MakerDAO) ethereum green Spark Protocol ethereum green Spiko stellar green Stake DAO ethereum not_applicable StakeWise v3 ethereum not_applicable Stargate Finance ethereum gray stHYPE (Valantis Labs) hyperliquid not_applicable SUNSwap (sun.io) tron not_applicable Superstate ethereum not_applicable Sushi (SushiSwap) — v2 + v3 + Trident + BentoBox/Kashi + SushiXSwap ethereum not_applicable Symbiotic ethereum not_applicable Synapse Protocol ethereum green Uniswap (v2 + v3) ethereum not_applicable USDD (Decentralized USD) tron not_applicable Usual (USD0 / bUSD0 / USUAL) ethereum not_applicable Veda (BoringVault) ethereum green Venus Protocol bsc green Wormhole ethereum gray Yearn Finance ethereum not_applicable

Linked hacks no historical incidents linked #

No historical incidents are linked to this factor.
rubric_version v1.7.0 factor RD-F-154 category 10 carried 80 critical yes