There is a slight risk of temporary DoS in depositTokensToL2().
Funds only move out when the off-chain service picks up events emitted by the contract by submitting signed withdrawal transactions.
A well funded attacker could donate tokens to make the token balance of the contract reach DEPOSIT_LIMIT, effectively preventing future deposits since no events is emitted for donations and thus, the off-chain service will not move funds out. This is only temporary until an admin with access to the off-chain service private key sends a manual transaction to move funds out.
DoS of future deposits.
Manual review.
Use state variables to do the accounting instead of relying on token.balanceOf(address(vault)).
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.