MetavaultsRegistry::registerChain() allows chain id 0, which doesn't exist, but would be problematic
Summary
MetavaultsRegistry::registerChain() if called with chain id 0, works, but MetavaultsRegistry:unregisterChain() would revert with chain not found.
Vulnerability Detail
MetavaultsRegistry:unregisterChain() reverting.
function unregisterChain(
address metavault,
uint256 chainId
) external restricted onlyRegistered(metavault) {
MetavaultConfig storage config = _getMvConfigStorage().metavaults[metavault];
if (config.chainConfigs[chainId].chainId == 0)
revert ChainNotRegistered(metavault, chainId);Impact
Chain id == 0, doesn't exist so it would be admin mistake.
Code Snippet
Tool Used
Manual Review
Recommendation
Don't allow chain id == 0 in MetavaultsRegistry::registerChain().