revoked_at is not included in signature #56

Open
opened 2026-04-05 16:11:01 +00:00 by Skipper · 0 comments
Owner

Info

Severity: CRITICAL
Attack vector: offline

Impact

Allows an attacker to restore previously revoked grants and regain signing capability.

Description

The revoked_at field is stored in the database but is not included in the MAC-protected grant payload. As a result, revocation state can be changed without
breaking integrity verification.

Example flow

  1. Find a revoked grant in the database.
  2. Set revoked_at back to NULL.
  3. Present a signing request that matches the grant.
  4. The grant passes integrity checks and is treated as active again.

Mitigation

Include revoked_at in the integrity-protected grant representation, or move revocation status into a separately protected structure.

# Info **Severity**: **CRITICAL** Attack vector: offline ## Impact Allows an attacker to restore previously revoked grants and regain signing capability. ## Description The `revoked_at` field is stored in the database but is not included in the MAC-protected grant payload. As a result, revocation state can be changed without breaking integrity verification. ## Example flow 1. Find a revoked grant in the database. 2. Set `revoked_at` back to `NULL`. 3. Present a signing request that matches the grant. 4. The grant passes integrity checks and is treated as active again. ## Mitigation Include `revoked_at` in the integrity-protected grant representation, or move revocation status into a separately protected structure.
Skipper added the
Difficulty
Low
1
Kind
Security
labels 2026-04-05 16:11:01 +00:00
CleverWild self-assigned this 2026-04-08 10:03:00 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MarketTakers/arbiter#56