# Liquidation can be escaped by depositing a Uni v3 position with 0 liquidity

Depositing a zero-liquidity Uniswap v3 position makes decreaseLiquidity revert, blocking liquidation and leaving bad debt to the protocol.

- Payout: Audit contest
- Severity: high
- Program: Wild Credit
- Found by: WatchPug
- Disclosed: 2021-11-16
- Write-up quality: 6/10
- Original: https://github.com/code-423n4/2021-09-wildcredit-findings/issues/30
- Library page: https://bugbountylibrary.com/r/c4%3A2021-09-wildcredit%3AH-02
- Tags: area:web3 domain:web3 impact:funds-loss kind:contest platform:code4rena sev:high tech:evm tech:solidity technique:source-review vuln:dos vuln:liquidation

**Target:** lending protocol liquidation via Uniswap v3 position manager
**Root cause:** liquidateAccount calls _unwrapUniPosition -> uniV3Helper.removeLiquidity -> positionManager.decreaseLiquidity, which reverts when the position has 0 liquidity, so liquidation cannot proceed.
**Steps:**
1. Deposit collateral and borrow max debt.
2. Deposit a Uni v3 position with 0 liquidity.
3. When collateral value drops, call liquidateAccount(); decreaseLiquidity reverts, liquidation fails.
**How found:** Code reading of the liquidation path into Uniswap v3 periphery; noticed decreaseLiquidity reverts for zero-liquidity positions.
**Exploitation:** Attacker opens long positions on collateral, borrows max, adds a zero-liquidity Uni v3 position; on price drop liquidation reverts, leaving bad debt to the protocol.
**Insight:** When integrating external position managers, test edge-case positions (zero liquidity, empty ranges) that make decreaseLiquidity revert and block liquidation.
