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.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.