Submitted by givn, also found by sl1
Relevant code: NativeVault::slashAssets
Cores state contains a mapping between assets and slashingHandlers - assetSlashingHandlers. Assets that are assigned a slashing handler are considered whitelisted and vaults containing this asset can be deployed.
When a slash is performed on a vault, the following function is called:
Inside NativeVaults implementation of the function, the following check is performed:
This check can be problematic in the case where some number of native vaults have been deployed and the assetSlashingHandlers mapping gets updated with a new slashHandler. Then, the slashAssets function will always revert.
Unsynchronized state update causes DoS of slashing functionality inside NativeVault.
If the slashingHandler for restaking gets changed at some point it will cause DoS of the slashing functionality for NativeVaults. It will be blocked until contracts get updated with new implementation or old slashing handler is restored.
Lets suppose the following scenario:
Both approaches to fix this issue once it has occurred have their drawbacks:
There are multiple ways to prevent this issue:
MiloTruck (judge) commented:
karan-andalusia (Karak) confirmed
