# LiquidationManager::liquidate() allows liquidators to get liquidation bonus and leave bad debt behind

Jigsaw's liquidate() permits partial liquidation without a post-liquidation solvency check, letting liquidators seize all collateral plus bonus while leaving bad debt.

- Payout: Contest reward
- Severity: high
- Program: Jigsaw
- Credited: phil
- Disclosed: 2025-08-11
- Write-up quality: 6/10
- Original: https://cdn.cantina.xyz/reports/cantina_competition_jigsaw_june2025.pdf#3.1.3
- Library page: https://bugbountylibrary.com/r/cantina%3Ajigsaw_june2025%3A3.1.3
- Tags: domain:web3 impact:funds-loss impact:integrity kind:contest platform:cantina sev:high tech:solidity technique:source-review vuln:business-logic vuln:liquidation

**Target:** LiquidationManager::liquidate() smart contract function
**Root cause:** liquidate() allows any amount up to the user's debt and calls forceRemoveCollateral() which skips the solvency check, so no post-liquidation solvency verification occurs.
**Steps:**
1. Call `liquidate()` with `_jUsdAmount` up to the user's full borrowed amount (passes `require(_jUsdAmount <= borrowed(holding))`).
2. Pass the `isLiquidatable` check on the collateral/holding.
3. `forceRemoveCollateral()` removes collateral without solvency check, transferring collateral plus liquidation bonus to liquidator.
4. User is left with bad debt and zero collateral.
**How found:** Code review of liquidate() flow: noticed partial liquidation allowed and forceRemoveCollateral() bypasses solvency check, so no post-liquidation solvency verification.
**Exploitation:** Liquidator targets an underwater position, liquidates the maximum amount up to the debt, receives all remaining collateral plus the liquidation bonus, leaving the protocol holding only bad debt.
**Escalation:** Bad debt grows by the bonus amount and becomes proportionally larger relative to total collateral, amplifying depeg effect.
**Insight:** When a liquidation path uses a collateral-removal helper that skips solvency checks, verify whether partial liquidations can drain all collateral while leaving debt — check for a post-liquidation solvency assertion.
