Compromised Token Runbook (JWT/OAuth Sessions)
On this page
Detection Signals
- Token used from new geography/ASN rapidly
- High rate of refresh requests for a single account
- Admin actions from unusual device fingerprints
Immediate Containment
- Invalidate tokens for the user or client.
- Revoke refresh tokens (server-side store) where possible.
- Force re-auth for sensitive actions.
Token Revocation Strategies
- Sessions: delete session server-side (easy).
- JWT access tokens: short expiry + rotate refresh tokens (recommended).
- Refresh tokens: store server-side and revoke on suspicion.
Operational Flow
1) Identify affected account/client 2) Revoke refresh tokens + active sessions 3) Require password reset if needed 4) Audit actions taken during compromise window 5) Add detection rules to prevent repeat
Failure Modes
- JWT cannot revoke: long-lived access token stays valid → use short TTL + refresh rotation.
- Refresh reuse not detected: add reuse detection and revoke on reuse.