# Canceling an auction with 0 bids will only partially pay back the outstanding debt

Canceling a zero-bid Astaria auction deducts initiator fee from the reserve payment, leaving residual debt and liens that permanently lock the borrower's NFT collateral.

- Payout: Contest reward
- Severity: high
- Program: Astaria
- Credited: bin2chen
- Disclosed: 2022-11-07
- Write-up quality: 7/10
- Original: https://github.com/sherlock-audit/2022-10-astaria-judging/issues/199
- Library page: https://bugbountylibrary.com/r/sherlock%3A2022-10-astaria%3AH-7
- Tags: domain:web3 impact:dos impact:funds-loss kind:contest platform:sherlock sev:high tech:solidity technique:source-review vuln:accounting-error vuln:business-logic vuln:liquidation

**Target:** AuctionHouse.cancelAuction / _handleIncomingPayment / CollateralToken.releaseToAddress
**Root cause:** cancelAuction routes the reserve price through _handleIncomingPayment which deducts the initiator fee before repaying liens, so repayment is short by the fee; unlike endAuction, cancelAuction never removes the liens.
**Steps:**
1. Set up auction with 0 bids, reservePrice=10 ETH, initiatorFee=10%.
2. Call `AuctionHouse.cancelAuction()` paying 10 ETH reserve.
3. `_handleIncomingPayment()` deducts 1 ETH initiator fee, transfers to initiator.
4. Only 9 ETH applied to outstanding liens; 10 ETH debt remains partially unpaid.
5. Liens are not removed (no lien-clearing as in endAuction).
6. Borrower calls `CollateralToken.releaseToAddress()`; `releaseCheck` modifier reverts due to outstanding liens, NFT locked.
**How found:** Code review of cancelAuction vs endAuction: noticed cancelAuction lacks lien removal and that _handleIncomingPayment subtracts initiatorFee from the reserve before debt repayment, creating a shortfall.
**Exploitation:** Borrower pays the full reserve price to cancel their own auction expecting debt cleared, but the fee deduction leaves residual debt and stale liens; releaseCheck blocks releaseToAddress, permanently locking the collateral NFT.
**Insight:** Compare cancel/abort paths against the normal settlement path for missing state cleanup (lien removal) and for fee deductions applied before debt repayment that create a repayment shortfall.
