If _ensureLiquidity
is called within an external function like withdraw()
, an attacker may be able to drain liquidity by repeatedly triggering withdrawals.
If an attacker calls withdraw()
multiple times in quick succession, they can trigger _ensureLiquidity()
each time, draining the vault
Attackers could drain the vault before legitimate users can withdraw and users may face failed withdrawals
Manual Review
Prevent rapid, repeated withdrawals from the vault by adding a cooldownDuration
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.