# A Dutch trade could end up with an unintended lower closing price

Pausing trading during an open Dutch auction blocks settleTrade, so a late bidder after unpause buys at a much lower linearly-decayed price.

- Payout: Contest reward
- Severity: medium
- Program: Reserve
- Credited: RaymondFam
- Disclosed: 2023-11-13
- Write-up quality: 6/10
- Original: https://github.com/code-423n4/2023-06-reserve-findings/issues/48
- Library page: https://bugbountylibrary.com/r/c4%3A2023-06-reserve%3AM-01
- Tags: domain:web3 impact:funds-loss kind:contest platform:code4rena sev:medium tech:solidity technique:source-review vuln:access-control vuln:business-logic

**Target:** DutchTrade.sol / RevenueTrader.settleTrade / BackingManager.settleTrade
**Root cause:** settleTrade in RevenueTrader and BackingManager is gated by notTradingPausedOrFrozen, so a bid during a trading pause reverts; the auction keeps decaying and settles cheaper once unpaused.
**Steps:**
1. Open a 30-minute Dutch trade via RevenueTrader selling surplus token for RToken; price decays linearly.
2. PAUSER calls pauseTrading() shortly after the auction starts.
3. Alice calls `bid()`; `origin.settleTrade(sell)` reverts on `notTradingPausedOrFrozen` (RevenueTrader.sol L46).
4. Near endTime PAUSER calls unpauseIssuance()/unpauseTrading().
5. Bob calls `bid()` and receives sell tokens at the decayed, much lower price.
**How found:** Code reading of DutchTrade.bid's external settleTrade callback and noticing the notTradingPausedOrFrozen modifier on RevenueTrader/BackingManager settleTrade, then reasoning about pause timing versus linear price decay.
**Exploitation:** A malicious or compromised PAUSER pauses trading during an open Dutch auction to block settlement, waits for the price to decay near endTime, unpauses, and a colluding bidder buys the sell token far below fair value, reducing proceeds available to boost RToken/stRSR rates and recollateralization.
**Insight:** When an auction's settlement path is gated by a pausability modifier, check whether pausing mid-auction blocks settlement while the price clock keeps running — a griefer/pauser can force settlement at a worse price.
