The 2FA step matched the user by temp token alone, and the token was left empty after a successful 2FA login (null right after turning 2FA on), so an empty or missing token skipped the password step (security review F5). Now: an empty or missing temp token is refused before the lookup; the token is cleared to null after success; after 5 wrong codes the token is cleared, so the password must be entered again (counted in memory per user). Changelog: general security notice for self-hosted upgrades, and the one behaviour change users can see. SECURITY-REVIEW.md: F5 fixed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 KiB
34 KiB