The redeem function in VaultRouterBranch.sol has a critical security vulnerability where it fails to check the vault's locked status, emergency pause conditions, and global withdrawal limits before allowing withdrawals. This flaw could enable unauthorized withdrawals in situations where the protocol should restrict them, potentially impacting financial stability and security.
The function lacks crucial validations:
It does not check if the vault is locked due to security or operational reasons.
The function does not verify if the protocol is in an emergency pause state, which should prevent any withdrawals.
There is no enforcement of protocol-wide withdrawal caps to prevent excessive fund outflows in a short period.
This function only verifies the delay but does not check whether the vault is locked, the protocol is paused, or global withdrawal limits have been reached, leading to potential security risks.
Users could withdraw funds from locked vaults or during emergency protocol suspensions.
Without a withdrawal cap, the function allows unrestricted withdrawals, potentially causing liquidity issues and destabilizing the protocol.
In the event of a governance decision to pause withdrawals, malicious users could still execute withdrawals, undermining protocol integrity.
The redeem function is externally callable, meaning any user can attempt a withdrawal.
Since no additional validation checks are implemented, a user can withdraw funds as long as the withdrawal delay has passed.
This flaw affects all vaults using this contract, making it a systemic risk.
Ensure withdrawals are blocked if the vault is locked:
Block withdrawals when the protocol is in an emergency pause state:
Restrict withdrawals if the daily cap has been reached:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.