Description
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.0, OpenIDMixin.parse_id_token() reads the nonce_supported decision from the untrusted ID token being validated and sets the expected nonce to null when that claim is the JSON boolean false. In implicit and hybrid relying parties, or applications that directly accept externally supplied ID tokens, an attacker with a captured validly signed token can bypass the nonce-to-session binding and replay the victim's token into an attacker-controlled session. Plain authorization code flow is not affected, and the token must still pass signature, issuer, and audience validation. OpenIDMixin.parse_id_token() trusts nonce_supported in both authlib/integrations/base_client/sync_openid.py and authlib/integrations/base_client/async_openid.py to disable the expected nonce. This issue is fixed in version 1.9.0.
Published: 2026-10-22
Score: 4.2 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Replay attack via nonce bypass
Action: Update to 1.9.0
AI Analysis

Impact

Authlib is a Python library that implements OAuth and OpenID Connect. A flaw in the OpenIDMixin.parse_id_token() method allowed a token to disable its own nonce validation by setting the "nonce_supported" claim to false. When a library instance reads this claim from an incoming token, it clears the expected nonce, effectively severing the link between the token and the original session. An attacker who captures or forges a validly signed token containing this claim can replay the token within an attacker‑controlled session, gaining access without proper nonce checks. The token must still pass signature, issuer, and audience validation, so the attacker must obtain a legitimately signed token from the provider.

Affected Systems

Any application that uses Authlib’s OpenIDMixin prior to version 1.9.0 and relies on the implicit or hybrid grant flows is impacted. This includes the sync_openid.py and async_openid.py integration modules. Applications that employ the pure authorization code flow are not affected, as the nonce is handled differently there.

Risk and Exploitability

The CVSS score of 4.2 indicates a moderate risk level. Because the vulnerability requires a valid token and operates only in implicit or hybrid flows, the exploitation surface is limited, and no EPSS data is available and the issue is not listed in CISA’s KEV catalog. Attacks would involve capturing a token with "nonce_supported": false or forging such a token, then replaying it into a session controlled by the attacker. The overall likelihood of widespread exploitation remains low, but the impact can include unauthorized session access for those using the vulnerable flows.

Generated by OpenCVE AI on October 23, 2026 at 03:42 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Authlib to version 1.9.0 or later to apply the fixed token parsing logic.
  • If an upgrade is not immediately possible, modify your token validation code to ignore or reject the "nonce_supported" claim in any received token and enforce the presence and correctness of a nonce that is bound to the session context.
  • Prefer the authorization code grant flow when possible, as this flow is not affected by the vulnerability.
  • Review recent Authlib releases and monitor for additional security advisories.

Generated by OpenCVE AI on October 23, 2026 at 03:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-c5mf-xmp2-59rc Authlib: ID token can disable its own nonce validation via the nonce_supported claim
History

Thu, 29 Oct 2026 15:00:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:authlib:authlib:*:*:*:*:*:*:*:*

Fri, 23 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 23 Oct 2026 03:45:00 +0000

Type Values Removed Values Added
First Time appeared Authlib
Authlib authlib
Vendors & Products Authlib
Authlib authlib

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Description Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.0, OpenIDMixin.parse_id_token() reads the nonce_supported decision from the untrusted ID token being validated and sets the expected nonce to null when that claim is the JSON boolean false. In implicit and hybrid relying parties, or applications that directly accept externally supplied ID tokens, an attacker with a captured validly signed token can bypass the nonce-to-session binding and replay the victim's token into an attacker-controlled session. Plain authorization code flow is not affected, and the token must still pass signature, issuer, and audience validation. OpenIDMixin.parse_id_token() trusts nonce_supported in both authlib/integrations/base_client/sync_openid.py and authlib/integrations/base_client/async_openid.py to disable the expected nonce. This issue is fixed in version 1.9.0.
Title Authlib: ID token can disable its own nonce validation via the nonce_supported claim
Weaknesses CWE-294
CWE-807
References
Metrics cvssV3_1

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-23T15:00:16.051Z

Reserved: 2026-10-21T20:34:25.600Z

Link: CVE-2026-114617

cve-icon Vulnrichment

Updated: 2026-10-23T14:48:39.274Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-22T22:18:04.580

Modified: 2026-10-29T14:51:56.687

Link: CVE-2026-114617

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-22T21:25:31Z

Links: CVE-2026-114617 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T03:45:16Z

Weaknesses
  • CWE-294

    Authentication Bypass by Capture-replay

  • CWE-807

    Reliance on Untrusted Inputs in a Security Decision