Skip to content

Prepare MFA verification before authenticator code entry - #140

Merged
jameskurz-filecoin merged 1 commit into
mainfrom
codex/mfa-code-timing
Oct 11, 2026
Merged

jameskurz-filecoin merged 1 commit into
mainfrom
codex/mfa-code-timing

Conversation

@jameskurz-filecoin

Copy link
Copy Markdown
Collaborator

Commerce previously looked up the authenticator and created its challenge after receiving the code, adding two provider round trips before verification. Prepare the challenge before enabling code entry so submitted codes reach verification sooner; this removes an avoidable timing risk without changing WorkOS’s code acceptance window.

The preparation is signed, short-lived, and bound to the exact user, organization, session, factor, and challenge. Preparation has a separate durable budget; verification keeps its existing five-attempt limit. Successful verification rechecks current factor ownership before issuing a receipt, and duplicate challenge receipts still fail closed. The form handles preparation failures, expiration, timeouts, and duplicate submission.

Validation: focused MFA route, proof, form, authentication guard, and database regressions; web and database typechecks; translation catalog checks; module boundaries; local browser QA of preparation and retry states. Independent adversarial and release reviews completed before merge. Live code acceptance near a rollover remains dependent on WorkOS and has not been claimed as reproduced.

@jameskurz-filecoin
jameskurz-filecoin merged commit adc9f43 into main Oct 11, 2026
13 checks passed
@jameskurz-filecoin
jameskurz-filecoin deleted the codex/mfa-code-timing branch October 11, 2026 23:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant