clusev/docs/superpowers/specs
boban 57a3dd51b6 feat(security): signed confirm-action tokens + airtight backup-code reveal
Two hardening features completed in parallel (each with its own spec + tests),
sharing call sites (TwoFactorSetup, WebauthnKeys, routes) so committed together:

- ConfirmAction token hardening: destructive confirm flows now carry a server-issued,
  single-use, signed token (App\Support\Confirm\ConfirmToken) instead of trusting a
  client-mutable event/params/auditTarget. Every #[On] apply handler consumes + validates
  the token (forged/replayed/direct-bypass calls no-op). Server-scoped per action; closes
  the codebase-wide confirm-bypass + audit-forgery vector across Security, Sessions, Users,
  WebauthnKeys, Servers\Show, Services, System, Files.
- Backup-code airtight reveal: codes are revealed via a transient channel, not a persisted
  Livewire property, so a captured/replayed snapshot can't re-render them; the recovery
  download is grant-gated.

Full suite green (162).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 18:35:33 +02:00
..
2026-06-14-account-recovery-design.md docs(spec): account recovery design (forgot-password, 2FA backup codes, CLI) 2026-06-14 16:41:45 +02:00
2026-06-14-accounts-sessions-restart-design.md docs(spec): 0.9.0 accounts, sessions, auto-restart, SMTP, audit-retention 2026-06-14 23:17:41 +02:00
2026-06-14-external-proxy-tls-design.md docs(spec): external reverse-proxy TLS mode (Zoraxy in front) 2026-06-14 22:26:20 +02:00
2026-06-14-optional-pluggable-2fa-design.md docs(spec): optional, pluggable 2FA (TOTP and/or YubiKey) design 2026-06-14 19:47:55 +02:00
2026-06-14-server-details-hardening-polish-design.md docs(spec): server-details UX + hardening polish design 2026-06-14 10:09:17 +02:00
2026-06-14-ssh-key-auto-provision-design.md docs(spec): auto-provision SSH key & safely disable password login 2026-06-14 21:54:02 +02:00
2026-06-14-webauthn-yubikey-design.md docs(spec): WebAuthn/YubiKey 2nd-factor design (Phase 2) 2026-06-14 18:12:32 +02:00
2026-06-15-confirm-action-token-hardening-design.md feat(security): signed confirm-action tokens + airtight backup-code reveal 2026-06-15 18:35:33 +02:00
2026-06-15-recovery-codes-airtight-reveal-design.md feat(security): signed confirm-action tokens + airtight backup-code reveal 2026-06-15 18:35:33 +02:00