# Liquidation can be blocked by incrementing the nonce

Liquidatable PartyA front-runs liquidation by bumping its on-chain nonce, invalidating the Muon upnl signature and reverting liquidatePartyA, blocking liquidation indefinitely.

- Payout: Contest reward
- Severity: high
- Program: Symmetrical
- Credited: 0xcrunch
- Disclosed: 2023-06-05
- Write-up quality: 7/10
- Original: https://github.com/sherlock-audit/2023-06-symmetrical-judging/issues/233
- Library page: https://bugbountylibrary.com/r/sherlock%3A2023-06-symmetrical%3AH-7
- Tags: domain:web3 impact:dos kind:contest platform:sherlock sev:high tech:evm tech:solidity technique:race-window technique:source-review vuln:business-logic vuln:dos

**Target:** LiquidationFacet / LibMuon signature verification
**Root cause:** verifyPartyAUpnl/verifyPartyBUpnl build the signed hash using the current on-chain partyANonces[partyA], so any nonce change between signature issuance and execution invalidates the signature.
**Steps:**
1. PartyA becomes liquidatable; liquidator obtains Muon upnl signature bound to current nonce N
2. PartyA monitors mempool and front-runs with a cheap nonce-incrementing tx (allocate/deallocate dust, lock/unlock dummy position, requestToClosePosition+requestToCancelCloseRequest)
3. Liquidator's liquidatePartyA executes; hash uses nonce N+1, verifyTSSAndGateway fails, tx reverts
4. Repeat each block to keep blocking liquidation
**How found:** Code reading of LiquidationFacetImpl.liquidatePartyA and LibMuon.verifyPartyAUpnl revealed the signed hash includes the live on-chain nonce, implying a race between signature issuance and execution.
**Exploitation:** Attacker front-runs every liquidation attempt with a minimal nonce-bumping transaction, causing signature mismatch and revert; on chains without public mempool, submits nonce bumps every block while economically viable, buying time to recover positions or inject funds.
**Escalation:** Same technique applies to liquidatePartyB via verifyPartyBUpnl, blocking PartyB liquidation too.
**Insight:** When off-chain signatures embed a mutable on-chain nonce, any permissionless nonce-bumping action becomes a griefing lever against time-sensitive flows like liquidation; check whether the signer's nonce can be advanced cheaply by the subject.
