# Stale or lagging price in liquidation

Liquidation price or incentive taken from a snapshot, EMA, or average instead of the current price

_Area: DeFi oracles, liquidations and flash loans. Seen in 2 disclosed reports; latest 2024-02-22. Updated 2026-10-23._

## How it works
Liquidation math assumes the price used to size debt and incentive matches the price used to settle. When one side is a snapshot, a lagging EMA, or an average-price composition and the other side is current spot, the two diverge. The result is a mismatch: debt recomputed against a different multiplier than it was snapshotted at [E1](https://bugbountylibrary.com/r/c4%3A2023-12-ethereumcreditguild%3AH-03.md), an incentive computed from a composition that no longer holds at settlement [E2](https://bugbountylibrary.com/r/sherlock%3A2023-10-aloe%3AM-4.md), or a liquidation price anchored to a slow EMA that ignores the fast move [E3](https://bugbountylibrary.com/r/c4%3A2025-12-panoptic-next-core%3AM-03.md). The broken assumption is that "the price I priced with is the price I settle with."

## Where it shows up
- Debt or collateral value snapshotted at auction start, then recomputed with a mutable global multiplier at bid time [E1](https://bugbountylibrary.com/r/c4%3A2023-12-ethereumcreditguild%3AH-03.md)
- Liquidation incentive derived from a TWAP/average composition while assets are withdrawn at spot [E2](https://bugbountylibrary.com/r/sherlock%3A2023-10-aloe%3AM-4.md)
- Multi-value tuple destructuring where same-typed EMAs are unpacked positionally [E3](https://bugbountylibrary.com/r/c4%3A2025-12-panoptic-next-core%3AM-03.md)
- Any `computeLiquidationIncentive`/`getLoanDebt` that reads an average while settlement reads spot

## How to review
Trace every value used in liquidation to its source and confirm the same price basis is used for pricing and settlement. Check: does the debt snapshot use the same multiplier as the bid recompute? Does the incentive composition match the withdrawal price? Does each tuple destructuring match the declared return order? The invariant: pricing inputs and settlement inputs must be derived from the same price at the same time.

## Variants seen
- Snapshot vs. dynamic multiplier mismatch gating which bids survive [E1](https://bugbountylibrary.com/r/c4%3A2023-12-ethereumcreditguild%3AH-03.md)
- Average-price composition vs. spot withdrawal yielding zero incentive [E2](https://bugbountylibrary.com/r/sherlock%3A2023-10-aloe%3AM-4.md)
- Positional tuple unpacking inverting EMA weights, anchoring to slow EMA [E3](https://bugbountylibrary.com/r/c4%3A2025-12-panoptic-next-core%3AM-03.md)

## Impact and severity
Cascading bad debt [E1](https://bugbountylibrary.com/r/c4%3A2023-12-ethereumcreditguild%3AH-03.md), unprofitable liquidation leaving unhealthy positions [E2](https://bugbountylibrary.com/r/sherlock%3A2023-10-aloe%3AM-4.md), and insolvent accounts dodging liquidation [E3](https://bugbountylibrary.com/r/c4%3A2025-12-panoptic-next-core%3AM-03.md). Severity is high where the mismatch blocks liquidation entirely; worse when a global mark-down propagates across all live loans [E1](https://bugbountylibrary.com/r/c4%3A2023-12-ethereumcreditguild%3AH-03.md).

## Evidence
- E1: https://bugbountylibrary.com/r/c4%3A2023-12-ethereumcreditguild%3AH-03.md
- E2: https://bugbountylibrary.com/r/sherlock%3A2023-10-aloe%3AM-4.md
- E3: https://bugbountylibrary.com/r/c4%3A2025-12-panoptic-next-core%3AM-03.md
