A vulnerability exists in the update function of Vault.sol due to the lack of validation on the withdrawalDelay parameter. This oversight allows a malicious vault owner to set an arbitrarily high withdrawal delay, effectively locking user funds indefinitely.
The update function updates vault parameters, including withdrawalDelay, based on the UpdateParams struct. However, there are no constraints ensuring that withdrawalDelay remains within a reasonable range. This means that a vault owner can set it to an extremely high value, preventing users from withdrawing their assets.
Without a restriction on withdrawalDelay, a malicious vault owner could effectively prevent users from withdrawing funds by setting an extremely high delay (e.g., uint256(-1)). This results in:
Users may lose access to their assets indefinitely.
A vault intended to facilitate withdrawals could become non-functional.
Users may lose confidence in the protocol due to an inability to retrieve their funds.
The likelihood of exploitation is moderate because the function allows an arbitrary value for withdrawalDelay without validation.
Malicious vault owners or administrators could abuse this to prevent withdrawals.
Users typically trust that they can withdraw their assets within a reasonable timeframe, making this an attractive vector for exploitation.
To mitigate this risk, enforce a reasonable upper limit on withdrawalDelay to ensure withdrawals remain accessible.
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.