An arbitrary external user can influence the frequency of vault upgrades.
Inbound deposits to a VaultControllerStrategy
must unconditionally always ensure the first vault they deposit to is equal to the groupDepositIndex
:
However, each successful deposit groupDepositIndex
also configures the next groupDepositIndex
.
Consequently, a caller can append an arbitrary vaultId
to the end of their array of vaultIds
to extert control over the groupDepositIndex
.
Depositing into a VaultControllerStrategy
is permissionless.
Through negligible donations, a user can force their vault to receive more deposits on average by forcing depositors to include their chosen vault by prioritising the groupDepositIndex
to match their chosen vault.
If _vaultIds[0]
does not start at groupDepositIndex
, the call is reverted. This means an attacker can therefore cheaply modify the groupDepositIndex
as a means to DoS inbound deposits.
Manual Review
Do not enforce which vaults should be deposited into based upon conditions which can be influenced by untrusted parties.
Always ensure a nontrivial minimum deposit is returned via getVaultDepositLimits()
, never allow this to be 0
.
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.