Skip to main content

auth0.js EUVDEUVD-2026-100483

| CVE-2026-107371 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-10-13 psirt@okta.com
5.4
CVSS 3.1 · Vendor: okta
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid but stale authentication session
  2. Delivery
    Invoke app flow requiring maxAge re-auth
  3. Exploit
    Library skips auth_time validation
  4. Execution
    Stale ID token accepted as fresh
  5. Impact
    Bypass step-up authentication control

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
Exploitation Conditions

Exploitation is only possible when the integrating application actually calls auth0.js authorize() with a maxAge parameter AND relies on that value to enforce recent authentication (e.g. step-up auth before sensitive operations) on an affected version (9.12.0 to <10.3.0). The limiting factors are significant: applications that do not use maxAge are unaffected, and an actor must already possess or leverage a valid-but-older authentication event/session rather than forging arbitrary credentials - the flaw weakens a freshness guarantee rather than granting unauthenticated access. PR:L indicates an authenticated context is required; the fix (>=10.3.0) adds the missing auth_time validation.

Impact

This is a moderate-severity authentication-control weakness (CVSS 5.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N) in the auth0.js client library, reported by Okta PSIRT with a patch available. The flaw (CWE-613, Insufficient Session Expiration) means the library silently ignores the maxAge parameter's re-authentication guarantee by not validating the ID token's auth_time claim. No EPSS score, KEV listing, or public POC was provided in the input, so there is no signal of active or probable near-term exploitation; this should be treated as a hygiene/defense-in-depth fix rather than an emergency patch. No SSVC decision data was supplied. The vendor CVSS vector lists PR:L (authenticated) and C:L/I:L, implying limited impact that depends on an application actually relying on maxAge for step-up or recent-authentication enforcement - applications that never request maxAge are effectively unaffected. The practical risk is bounded: this is a real priority only for apps using maxAge to gate sensitive actions, and low priority otherwise. Note the input provides no EPSS/KEV/POC data at all - absence of those signals is not evidence of safety, but no exploitation evidence exists in the provided intelligence.

Exploit ScenarioDerived

An application uses auth0.js authorize() with a maxAge value to force recent re-authentication before a sensitive operation (e.g. changing payment details). Because the library never checks the returned ID token's auth_time against maxAge, a user (or an actor leveraging a still-valid older authentication session) can pass this gate using a stale authentication event, bypassing the intended step-up/recent-login requirement. No public exploit code was identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 14, 2026

Missing auth_time validation in auth0.js 9.12.0 up to (but not including) 10.3.0 lets an integrating application accept an ID token that represents an authentication event older than the maxAge window it requested from authorize(), weakening the freshness guarantee behind step-up or re-authentication flows. The impact is bounded rather than catastrophic: an attacker must already hold or leverage a valid-but-stale authentication session (CVSS PR:L, assessed as AC:H with no confidentiality impact and limited integrity impact), and only applications that actually pass maxAge to authorize() and rely on that value are affected. Okta PSIRT has published a vendor fix, available in auth0.js 10.3.0 and later, and no public exploit code has been identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade auth0.js to 10.3.0 or later, the release that adds the missing auth_time claim validation, as documented in the Okta advisory (https://trust.okta.com/security-advisories/missing-verification-of-auth_time-claim-in-auth0-js-cve-2026-107371) and GHSA-42v6-5rcc-mq4v (https://github.com/auth0/auth0.js/security/advisories/GHSA-42v6-5rcc-mq4v); because auth0.js ships to browsers, the upgrade must be followed by redeploying the front-end bundle, and old cached client builds may continue to run the vulnerable code until users reload. If an immediate upgrade is not possible, the actionable compensating control is to stop trusting the client library for freshness: have the backend decode the ID token, compare auth_time against the application's own acceptable session age, and reject or force re-authentication when the token is stale - the trade-off is added server-side token handling complexity, and it only protects flows where the backend actually sees the ID token. A simpler stopgap is to remove maxAge from authorize() calls and instead trigger an explicit re-authentication or forced logout before sensitive operations, at the cost of extra user friction and a login round-trip; neither workaround fixes the root cause, so upgrading to 10.3.0 remains the recommended end state.

Affected VersionsENISA

auth0.js 9.12.0 <10.3.0

Affected Packages

euvd auth0_js fix: 10.3.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

auth0.js is the browser-side JavaScript SDK used by single-page applications to run OpenID Connect / OAuth 2.0 authorization flows against Auth0. The OpenID Connect maxAge request parameter asks the authorization server to re-authenticate the end user if more than the specified number of seconds have elapsed since the last active authentication; the server signals the time of that authentication in the ID token's auth_time claim. The correct client behavior is to compare auth_time against the current time and reject the token when the difference exceeds the requested maxAge. CVE-2026-107371 is classified as CWE-613 (Insufficient Session Expiration): when authorize() is called with maxAge, the library skips that comparison entirely, so a token whose auth_time is older than the requested window is handed to the application as if it satisfied the freshness requirement. This affects only the client-side freshness check - the underlying authentication and signing of the token remain intact, which is why the flaw is a weakening of a session-age control rather than an authentication bypass. Affected code is present in auth0.js from 9.12.0 (when maxAge handling was introduced per the EUVD version range) through versions before 10.3.0, the release that adds the missing auth_time validation.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (okta) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 3.1 LOW

Requires an authenticated but stale session and an app relying on maxAge, so PR:L and AC:H; impact is a weakened freshness/integrity control (I:L) with no real confidentiality or availability loss.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (okta).

CVSS VectorVendor: okta

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Oct 13, 2026 - 21:20 EUVD

DescriptionCVE.org

When the authorize() method is called with a maxAge parameter, the auth0.js library does not validate the auth_time claim in the resulting ID token against the requested maxAge value. As a result, an application may process an ID token that represents an authentication event older than the requested maximum age.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
popular but legacy Auth0 client SDK; superseded by newer SPA SDKs
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy