The Core.pauseVault function can be called to pause the Vault.startRedeem function and/or Vault.finishRedeem function while the Vault contracts other functions like deposit and mint are not paused. When this happens, the stakers can still deposit into the vault but cannot withdraw from the vault. If this situation persists, the stakers deposited funds can be locked in the vault for an undetermined duration that is not controlled by the stakers even though they should have the right to withdraw their deposits especially when no slashing occurs against the vault.
https://github.com/code-423n4/2024-07-karak/blob/53eb78ebda718d752023db4faff4ab1567327db4/src/Core.sol#L197-L199
https://github.com/code-423n4/2024-07-karak/blob/53eb78ebda718d752023db4faff4ab1567327db4/src/Vault.sol#L125-L149
https://github.com/code-423n4/2024-07-karak/blob/53eb78ebda718d752023db4faff4ab1567327db4/src/Vault.sol#L157-L188
https://github.com/code-423n4/2024-07-karak/blob/53eb78ebda718d752023db4faff4ab1567327db4/src/Vault.sol#L94-L103
https://github.com/code-423n4/2024-07-karak/blob/53eb78ebda718d752023db4faff4ab1567327db4/src/Vault.sol#L110-L119
The Vault contract can be updated to only allow its startRedeem and finishRedeem functions to be paused and unpaused all together instead of being paused or unpaused individually. Moreover, when the Vault contracts withdrawal functions like startRedeem and finishRedeem are paused, its deposit functions like deposit and mint can be required to be paused as well; in contrast, when the Vault contracts deposit functions are paused, its withdrawal functions do not need to be paused.
