Skip to content

Harden freeze flag with timestamped grace window for un-freeze #95

Description

@ibrahimmosouf-png

Harden freeze flag with timestamped grace window for un-freeze

Labels: security, enhancement, priority/medium
Difficulty: Medium · Effort: S
Backlog slot: 8

Problem Statement

set_frozen(true/false) are immediate toggles. If an admin key is compromised, an attacker can flip unfreeze() instantly after the legitimate admin freeze, defeating emergency response.

Why it Matters

  • A delay window (e.g. 1 hour between successive freeze/unfreeze) protects against key-compromise response races.

Expected Outcome

  1. Persist set_frozen_at: u64 whenever freeze state changes.
  2. unfreeze() requires current-time >= set_frozen_at + MIN_UNFREEZE_DELAY.
  3. Make MIN_UNFREEZE_DELAY configurable.

Acceptance Criteria

  • Test shows unfreeze() panics with Error::UnfreezeTooEarly if invoked within delay window.
  • Existing freeze tests still pass.

Files Likely Affected

  • campaign/src/lib.rs, campaign/src/storage.rs, campaign/src/types.rs

Dependencies

Issue #5 (multi-sig admin) — needs separate signing on freeze/unfreeze.


Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26enhancementImported from .github/ISSUES_TO_CREATE.mdpriority/mediumImported from .github/ISSUES_TO_CREATE.mdsecurityImported from .github/ISSUES_TO_CREATE.md

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions