F-2026-0006·missing-fund-recovery

Missing revert mechanism for pending states allows permanent position lockup on backend failure

Acknowledgedvaultleveragedprediction-marketgithub.com/bloom-art/dripster-lend
TL;DR

SettlePending, ClosePending, and LiquidatePending states have no revert escape hatch, so a backend failure between request and finalize permanently locks user positions with no on-chain recovery.

Severity
LOW
Impact
MEDIUM
Likelihood
LOW
Method
MManual review
CAT.
Complexity
LOW
Exploitability
LOW
02Section · Description

Description

When settlePosition is called, the position transitions to SettlePending and all conditional tokens are transferred to the admin for off-chain redemption (L985). If finalizeSettle is never called due to backend crash, key rotation invalidating the pre-signed signature, or operational error, the position is permanently stuck.

No other function accepts SettlePending state. There is no revertSettle, no timeout, and no user-initiated recovery path. The admin holds the tokens (or has already redeemed them for USDC off-chain), and the user has no on-chain recourse.

This contrasts with OpenPending, which has revertOpen (L714) as an escape hatch, itself added as a prior audit fix (MEDIUM-3) to address the same class of issue.

The same structural problem applies to ClosePending and LiquidatePending: both transfer tokens to the admin and rely exclusively on the corresponding finalize* function to resolve the position. If finalization never occurs, the position is stuck and user funds are locked.

03Section · Recommendation

Recommendation

Add a revert* escape hatch for each pending state, following the revertOpen precedent:

  • revertSettle: returns USDC (or re-credits the position) after a configurable timeout, callable by admin or position owner.
  • revertClose / revertLiquidate: similar recovery mechanisms returning tokens to the vault and reverting state to the prior position state.

Each should include a timeout to prevent premature reversion while giving the backend reasonable time to complete the off-chain operation.

04Section · Resolution

Resolution

Acknowledged. Deferred to a future V2 with partial-fill-aware reverse transitions.

F-2026-0006

oog
zealynx

Smart Contract Security Digest

Monthly exploit breakdowns, audit checklists, and DeFi security research — straight to your inbox

© 2026 Zealynx