MFA option is available for users
Why it matters
Passwords are compromised constantly — through phishing, credential stuffing from other breaches, or malware. Without MFA, a leaked password is a full account takeover. CWE-308 (Use of Single-Factor Authentication) directly identifies this gap. NIST 800-63B §4.2 defines Authenticator Assurance Level 2 as requiring a second factor; PCI-DSS Req-8.4.2 mandates MFA for all access to the cardholder data environment. OWASP A07 lists missing MFA as an authentication failure. MFA is the single control with the highest documented reduction in account takeover incidents — Google reported over 99% reduction in automated attacks when TOTP was enforced.
Severity rationale
Info because MFA absence does not directly enable an attack but substantially amplifies the impact of every other credential-related vulnerability in the application.
Remediation
TOTP is the highest-value, lowest-infrastructure MFA option — no SMS costs, no phone number dependency:
import * as OTPAuth from 'otpauth'
// Generate TOTP secret during MFA enrollment
const totp = new OTPAuth.TOTP({
issuer: 'YourApp',
label: user.email,
algorithm: 'SHA1',
digits: 6,
period: 30,
secret: OTPAuth.Secret.generate()
})
// Store totp.secret.base32 encrypted on the user record
// Send totp.toString() as a QR code URI to the enrollment UI
If using Clerk or Auth0, enable MFA in the dashboard — no code changes required. Supabase Auth supports TOTP MFA natively via the supabase-js client. Enforce MFA for admin roles immediately; offer it as optional for regular users with a strong nudge during onboarding.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Authentication Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- cwe · CWE-308 — Use of Single-Factor Authentication
- owasp:2021 · A07
- nist:rev4 · SP-800-63B §4.2 — Authenticator Assurance Level 2 (AAL2 requires MFA)
- pci-dss:4.0 · Req 8.4.2
- soc2:2017 · CC6.1 — Logical access security software, infrastructure, and architectures
Taxons
History
- 2026-04-18·v1.0.0·Initial import from saas-authentication·automated
- 2026-07-06·v1.0.1·Add SOC 2 TSC mapping (CC6.1) from the verified compliance crosswalk register (docs/compliance/).·by soc2-mapping-enrichment-ship-2