b81c211da9
- Fix broken rate limiting: add registerFailedAttempt/resetAttempts calls - Remove raw session token from exchange table; generate fresh token at redemption - Fix TOCTOU race: atomic UPDATE...WHERE used=false for exchange redemption - Delete exchange records immediately after redemption - Change bcrypt.compareSync to async bcrypt.compare to prevent event loop blocking - Fix IP extraction: prefer x-real-ip, fall back to last x-forwarded-for entry - Restrict redirect URI scheme to http/https only - Add Origin header CSRF check on login and session-login endpoints - Remove admin auto-access bypass from checkHostAccess (deny-by-default for all) - Revoke forward auth sessions when user status changes away from active - Validate portal domain against registered forward-auth hosts to prevent phishing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>