The _ensureLiquidity
function withdraws from the Curve vault without checking if the vault has sufficient liquidity, risking failed transactions.
If the Curve vault lacks liquidity, _withdrawFromVault(requiredAmount)
will fail, but the contract proceeds as if liquidity is available, leaving the system in an inconsistent state.
Failed Withdrawals: Users cannot withdraw/borrow despite "sufficient" liquidity.
Protocol Instability: Inconsistent liquidity tracking.
manual review
Add a pre-withdrawal liquidity check:
```solidity
require(curveVault.balanceOf(address(this)) >= requiredAmount, "Insufficient vault liquidity");
```
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.