A pool that reaches expiry while its agreement was never in an active-risk state during the underwritten term has, per docs/DESIGN.md §2, "survived the full term the stakers underwrote" and is owed EXPIRED — full principal returned. With riskWindowStart == 0, claimExpired() correctly reads a later CORRUPTED registry through to the staker-favorable EXPIRED branch and refunds principal.
pokeRiskWindow() has no expiry guard, and _markRiskWindowStart() caps the timestamp at expiry but still writes a non-zero riskWindowStart. After expiry, during a post-term active-risk interval on the still-live agreement, any unprivileged actor can poke and permanently seal riskWindowStart = expiry != 0, flipping claimExpired's auto-CORRUPTED gate from the EXPIRED default to a freeze-then-sweep of a staker who provably survived their term. DESIGN §6 pre-empts this only for scope-blindness (in-scope vs out-of-scope breach); it never addresses this distinct term-blindness axis (a pool with zero in-term risk).
Likelihood:
The agreement enters a post-expiry active-risk state (a new attack cycle after the pool's term) and is later marked CORRUPTED — normal, permissionless registry operation on a live agreement.
A permissionless actor (or any losing party) calls pokeRiskWindow() during that post-term active-risk interval, sealing riskWindowStart = expiry.
Impact:
A staker who survived the full underwritten term has their entire principal frozen for the 180-day MODERATOR_CORRUPTED_GRACE window (claimExpired reverts AgreementCorruptedAwaitingModerator; withdraw is already disabled by the riskWindowStart != 0 latch).
Absent a moderator SURVIVED flag within the grace window, any caller finalizes bad-faith CORRUPTED and the term-survivor's principal is swept to the sponsor-controlled recoveryAddress — 100% principal loss for a party owed EXPIRED.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.