<!-- canonical: https://0xsimao.com/reports/spectra-metavault-bridge -->

# Spectra MetaVault Bridge audit

Sherlock · Yield-tokenisation vaults · 16th December 2025

A private security review of Spectra MetaVault (yield-tokenisation vaults), conducted with Sherlock and completed on 16th December 2025 over 3 days. 0xSimao disclosed 8 findings: 4 low and 4 informational.

## What Spectra is

Spectra tokenises yield: principal and yield tokens split an interest-bearing deposit, and MetaVaults curate those positions for depositors. Moving a MetaVault position between chains runs through bridge zaps, with a gatekeeper deciding what an arriving message may do.

## Scope

The December update covered the bridge layer: the CCTP and DeBridge zap adapters, the BridgeGatekeeper in front of them and the MetavaultsRegistry that says which vaults a bridged deposit may enter.

## Findings

### Low

- [nativeFeeProvided < totalNativeRequired check in BridgeDeBridge::bridgeDeBridgeWithFee is incorrect](https://0xsimao.com/findings/spectra-metavault-native-fee-required-bridge)
- [Possible mistake in the unregister by index functions](https://0xsimao.com/findings/spectra-metavault-mistake-unregister-index-functions)
- [`MetavaultsRegistry::registerChain()` allows chain id 0, which doesn't exist, but would be problematic](https://0xsimao.com/findings/spectra-metavault-metavaults-register-exist-problematic)
- [`MetavaultsRegistry::removeBridgePathByIndex()` is missing](https://0xsimao.com/findings/spectra-metavault-metavaults-bridge-path-index)

### Informational

- [Struct order in MetavaultsRegistry could be switched for better readability](https://0xsimao.com/findings/spectra-metavault-struct-metavaults-switched-better)
- [address(0) check could be added to `MetavaultRegistry::registerMetavault()`](https://0xsimao.com/findings/spectra-metavault-added-metavault-registry-register)
- [Some variable shadowing in MetavaultsRegistry](https://0xsimao.com/findings/spectra-metavault-variable-shadowing-metavaults-registry)
- [`MetavaultsRegistry::registerMarket()/allowBridgePath()` duplicate `onlyRegistered` modifier](https://0xsimao.com/findings/spectra-metavault-register-bridge-path-registered)

## The report

[Download the report (PDF)](https://0xsimao.com/reports/2025-12-16-spectra-metavault.pdf)

[Protocol](https://www.spectra.finance/)
