★ Bridge ecrecover checks result ≠ address(0)
A cross-chain & bridge factor in the v1.7.0 rubric. Measured per protocol on a s cadence.
Methodology how we score #
**What this measures** This factor checks whether a bridge verifier explicitly tests that does not return . In Solidity, returns the zero address for invalid ECDSA signatures rather than reverting; a verifier that omits this check treats any malformed signature as belonging to . This factor applies only to bridge-touching protocols; non-bridge protocols show this factor as N/A.
**Why it matters** If appears in a bridge guardian or signer set — as it did in Wormhole's original code — an attacker can forge a valid-looking signature for any message using malformed ECDSA inputs, enabling unbacked minting bounded only by destination liquidity. The Wormhole February 2022 exploit demonstrated how a single signer-set integrity flaw can threaten hundreds of millions in bridge TVL. Security auditors consistently flag a missing as high-severity precisely because the omission is visually unobtrusive: one missing line converts a cryptographically sound scheme into a no-authentication bypass.
**Green / Yellow / Red** Green is scored when the verifier explicitly asserts across all verification paths. Yellow is scored when the check exists but applies only to a subset of paths or is delegated to a library whose zero-address handling cannot be confirmed. Red is scored when no zero-address assertion is present in any signature verification path.
**Common gray cases** Gray is applied when the bridge verifier is closed-source or delegates to a third-party module whose implementation cannot be inspected.
**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. A missing check provides a direct path to arbitrary message forging and unbacked minting — one of the narrowest code-level omissions with the largest possible loss surface in bridge architecture.
Measurement what to look for #
Determine whether the bridge verifier code rejects `ecrecover` returns of `address(0)`.