Skip to main content
← Vulnerabilities

SuperTokens Core: SAML callback accepts a replayed RelayState + SAMLResponse, minting a fresh authorization code on each replay

Affects supertokens-core in the 11.3, 11.4, 12.0, 12.1, 12.2 and 12.3 lines before the patched releases, when a replayed SAML callback is possible. Fixed in 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1 and 12.3.1.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

7.4HighCNA
Exploited
No known exploitation
Fix
Fixed in 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1, and 1 more
Who is exposed
Not reported

Do first: Upgrade to a fixed version: 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1, or one of 1 more.

Published
Last modified
24/100 · provisional
Unclear
None on Exploit-DB, Metasploit or GitHub

Summary

SuperTokens Core, an open source authentication server, is affected by a flaw in its SAML login callback that lets an attacker who captures a valid SAML response and its matching RelayState replay it to the callback and obtain a fresh authorization code for the captured user's identity. The attack can be carried out remotely, without logging in, and it requires the attacker to already have a legitimately issued, unexpired SAML response.

Read the original description

SuperTokens Core is an open source authentication server. From 11.3.0 until 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1, and 12.3.1, SAML.handleCallback does not consume RelayState, record assertion identifiers, or enforce Response.InResponseTo. In the SP-initiated flow, an attacker who obtains a legitimately issued, still-valid SAML response and its matching RelayState can resubmit the pair to /recipe/saml/callback before the assertion's NotOnOrAfter time; in the IdP-initiated flow, the assertion can be replayed without RelayState. The missing Response.InResponseTo check also permits an in-progress login to be completed with an assertion for a different identity and fails to enforce allowIDPInitiatedLogin=false. The callback does not validate Destination or SubjectConfirmationData Recipient and NotOnOrAfter, and each accepted callback mints a fresh, independently redeemable authorization code carrying the captured user's identity. This issue is fixed in versions 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1, and 12.3.1.

cve.now Index

24Pcve.now Index 24 of 100 · methodology v3 · provisional
  • Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
  • Exposure17/25No login or user action needed, reachable over the network without a login · Unknown: Advisories don't say whether default setups are affected
  • Reach?/20Unknown. No tracked technology or package matched
  • Severity7.4/10CVSS 7.4
  • No patch0/5No signal

What would change the score

  • Would score about 69 if added to CISA KEV
  • Would score about 64 if CISA's SSVC rates exploitation active
  • Would score about 29 if advisories confirm default setups are exposed

What to do

  • Upgrade to a fixed version: 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1, or one of 1 more.

Timeline

  1. CVE published
  2. First seen by cve.now

Affected versions

  • supertokens supertokens-core

    From 11.3.0 · fixed in 11.3.8; From 11.4.0 · fixed in 11.4.8; From 12.0.0 · fixed in 12.0.11; From 12.1.0 · fixed in 12.1.2; From 12.2.0 · fixed in 12.2.1; From 12.3.0 · fixed in 12.3.1

Evidence 13

  1. Advisory
  2. Repository
  3. Repository
  4. Repository
  5. Repository
Show all 13 sourcesShow fewer sources
  1. Repository
  2. Repository
  3. Repository
  4. Repository
  5. Repository
  6. Repository
  7. Repository
  8. Repository

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

Questions about CVE-2026-123801

Is CVE-2026-123801 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

The SAML callback does not reject a RelayState and SAMLResponse pair that was already used. Replaying a captured callback makes the server issue a new authorization code for the same identity each time, without the identity provider being contacted again.Source: github.com

Which versions are affected by CVE-2026-123801?

supertokens-core: from 11.3.0 before 11.3.8; from 11.4.0 before 11.4.8; from 12.0.0 before 12.0.11; from 12.1.0 before 12.1.2; from 12.2.0 before 12.2.1; from 12.3.0 before 12.3.1.Source: cve.now feed data

Am I affected, and how do I check?

Versions from 11.3.0 up to but not including 11.3.8, 11.4.0 up to 11.4.8, 12.0.0 up to 12.0.11, 12.1.0 up to 12.1.2, 12.2.0 up to 12.2.1, and 12.3.0 up to 12.3.1 are in scope. The affected setup needs a still-valid SAML response obtained from a logging or TLS-terminating intermediary or a malicious browser extension; check the installed supertokens-core version against these ranges.Source: github.com

How do I fix CVE-2026-123801?

Upgrade supertokens-core to the patched release for your line: 11.3.8, 11.4.8, 12.0.11, 12.1.2, 12.2.1 or 12.3.1. No workaround is listed in the facts.Source: github.com