Description
SuperTokens Core is an open source authentication server. From 11.0.0 until 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2, Dashboard.isValidUserSession treats any stored session row as valid without comparing DashboardSessionInfo.expiry to the current time. DashboardQueries.getSessionInfoWithSessionId also selects by app and session identifier without an expiry predicate, leaving the periodic DeleteExpiredDashboardSessions cleanup as the only expiration enforcement. An attacker who obtains a dashboard administrator session after its 30-day lifetime can continue using POST /recipe/dashboard/session/verify until the row is removed, and frequent Core restarts can prevent the 12-hour cleanup sweep from running. The stale session retains full dashboard read and write access, but the flaw does not provide a way to guess or acquire the random session identifier. This issue is fixed in versions 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2.
Published: 2026-11-09
Score: 7.4 High
EPSS: n/a
KEV: No
Impact: Persistence of expired admin sessions allows unauthorized continued administrative access
Action: Immediate Patch
AI Analysis

Impact

SuperTokens Core, an open‑source authentication server, contains a flaw in its dashboard session validation logic. The isValidUserSession function disregards the stored expiry timestamp, so the system treats a dashboard administrator’s session as valid even after the intended 30‑day lifetime has passed. Although no new session ID can be generated or guessed, any attacker who obtains a legitimate dashboard admin session token after expiration can continue to authenticate and perform full read and write actions on the dashboard until the session record is removed by cleanup or a server restart.

Affected Systems

SuperTokens Core (the supertokens‑core product) is affected. Vulnerable releases include any version from 11.0.0 up to 12.1.2 that has not applied the patch updates posted in the v11.0.9, v11.1.4, v11.2.4, v11.3.8, v11.4.8, v12.0.11, or v12.1.2 releases.

Risk and Exploitability

The CVSS score of 7.4 indicates a high‑severity issue where the risk lies primarily in the continuity of unauthorized access. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog, suggesting no confirmed widespread exploitation. An attacker must already possess a valid dashboard admin session id, which could arise from phishing, credential theft, or other compromise. Once acquired, the session remains usable beyond its intended expiration, allowing the attacker to maintain privileged access until the periodic cleanup removes the record or the server restarts. Because there is no mechanism to invalidate or extend expired sessions on demand, subsequent exploitation can occur silently and may remain undetected for up to twelve hours or longer if cleanup is infrequent.

Generated by OpenCVE AI on November 9, 2026 at 19:24 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade SuperTokens Core to a release that includes the session‑expiration fix, such as v12.1.2 or later.
  • Ensure the DeleteExpiredDashboardSessions cleanup routine runs at least hourly; if possible, increase cleanup frequency to align with the 12‑hour default to prevent long‑lived stale sessions.
  • Audit the current session database for any records older than the intended 30‑day window, revoke them manually, and monitor for unusual admin activity.

Generated by OpenCVE AI on November 9, 2026 at 19:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 09 Nov 2026 18:30:00 +0000

Type Values Removed Values Added
Description SuperTokens Core is an open source authentication server. From 11.0.0 until 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2, Dashboard.isValidUserSession treats any stored session row as valid without comparing DashboardSessionInfo.expiry to the current time. DashboardQueries.getSessionInfoWithSessionId also selects by app and session identifier without an expiry predicate, leaving the periodic DeleteExpiredDashboardSessions cleanup as the only expiration enforcement. An attacker who obtains a dashboard administrator session after its 30-day lifetime can continue using POST /recipe/dashboard/session/verify until the row is removed, and frequent Core restarts can prevent the 12-hour cleanup sweep from running. The stale session retains full dashboard read and write access, but the flaw does not provide a way to guess or acquire the random session identifier. This issue is fixed in versions 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2.
Title SuperTokens Core: Dashboard session tokens are never checked for expiry: `isValidUserSession` ignores the stored `expiry`, so a long-expired admin session still authenticates
Weaknesses CWE-613
References
Metrics cvssV3_1

{'score': 7.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-09T18:07:37.939Z

Reserved: 2026-11-06T15:27:56.225Z

Link: CVE-2026-123799

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-09T19:16:46.440

Modified: 2026-11-09T19:16:46.440

Link: CVE-2026-123799

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T19:30:15Z

Weaknesses
  • CWE-613

    Insufficient Session Expiration