-
Notifications
You must be signed in to change notification settings - Fork 58
Harden freeze flag with timestamped grace window for un-freeze #95
Copy link
Copy link
Open
Labels
GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26Campaign: Official Campaign | FWC26enhancementImported from .github/ISSUES_TO_CREATE.mdImported from .github/ISSUES_TO_CREATE.mdpriority/mediumImported from .github/ISSUES_TO_CREATE.mdImported from .github/ISSUES_TO_CREATE.mdsecurityImported from .github/ISSUES_TO_CREATE.mdImported from .github/ISSUES_TO_CREATE.md
Description
Activity
Metadata
Metadata
Assignees
Labels
GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26Campaign: Official Campaign | FWC26enhancementImported from .github/ISSUES_TO_CREATE.mdImported from .github/ISSUES_TO_CREATE.mdpriority/mediumImported from .github/ISSUES_TO_CREATE.mdImported from .github/ISSUES_TO_CREATE.mdsecurityImported from .github/ISSUES_TO_CREATE.mdImported from .github/ISSUES_TO_CREATE.md
Harden freeze flag with timestamped grace window for un-freeze
Labels:
security,enhancement,priority/mediumDifficulty: Medium · Effort: S
Backlog slot: 8
Problem Statement
set_frozen(true/false)are immediate toggles. If an admin key is compromised, an attacker can flipunfreeze()instantly after the legitimate admin freeze, defeating emergency response.Why it Matters
freeze/unfreeze) protects against key-compromise response races.Expected Outcome
set_frozen_at: u64whenever freeze state changes.unfreeze()requires current-time >=set_frozen_at + MIN_UNFREEZE_DELAY.MIN_UNFREEZE_DELAYconfigurable.Acceptance Criteria
unfreeze()panics withError::UnfreezeTooEarlyif invoked within delay window.Files Likely Affected
campaign/src/lib.rs,campaign/src/storage.rs,campaign/src/types.rsDependencies
Issue #5 (multi-sig admin) — needs separate signing on freeze/unfreeze.