You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: JWT algorithm pinning, timing-safe comparisons, timestamp validation, challenge store
HIGH fixes:
- Pin JWT to HS256 in both sign() and verify() (prevents algorithm confusion)
- Constant-time API key comparison via crypto.timingSafeEqual (2 locations)
- Event timestamp validation: reject >5min old or >60s future events
- In-memory challenge store when Supabase unavailable (was completely
bypassing challenge verification without it)
- Browser fetches challenges from server instead of generating locally
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0 commit comments