---
id: CVE-2026-114615
title: >-
  Authlib incomplete algorithm-confusion fix permits HMAC forgery with prefixed
  public keys
summary: >-
  Authlib is a Python library which builds OAuth and OpenID Connect servers.
  From 1.3.1 until 1.9.0, OctKey.import_key() checks asymmetric-key markers only
  at byte zero while Authlib's PEM loaders accept leading whitespace, comments,
  or a …
severity: high
cvss: 7.4
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'
cvssSource: cna
cwe:
  - CWE-184
  - CWE-347
vendor: authlib
product: authlib
affected:
  - 'authlib >= 1.3.1, < 1.9.0'
published: '2026-10-22'
updated: '2026-10-22'
sourceUpdated: '2026-10-22T21:10:02.023Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-114615'
references:
  - url: 'https://github.com/authlib/authlib/security/advisories/GHSA-7vr2-2fgp-9w7p'
    label: 'https://github.com/authlib/authlib/security/advisories/GHSA-7vr2-2fgp-9w7p'
  - url: 'https://github.com/authlib/authlib/pull/945'
    label: 'https://github.com/authlib/authlib/pull/945'
  - url: >-
      https://github.com/authlib/authlib/commit/e3bd41cb29dcfee434453b135ffb487884baeedf
    label: >-
      https://github.com/authlib/authlib/commit/e3bd41cb29dcfee434453b135ffb487884baeedf
  - url: 'https://github.com/authlib/authlib/releases/tag/v1.9.0'
    label: 'https://github.com/authlib/authlib/releases/tag/v1.9.0'
tags:
  - cve.org
ingestedAt: '2026-10-22T22:00:50.440Z'
---

## Overview

Authlib is a Python library which builds OAuth and OpenID Connect servers. From 1.3.1 until 1.9.0, OctKey.import_key() checks asymmetric-key markers only at byte zero while Authlib's PEM loaders accept leading whitespace, comments, or a byte-order mark. In deployments that use the documented mixed algorithm registry and already configure verification with PEM or certificate bytes containing such a prefix, an unauthenticated attacker who knows those same public-key bytes can use them as an HMAC secret and forge HS256 tokens with arbitrary identity or authorization claims. This is a bypass of the remediation for CVE-2024-37568. The module-level jwt object reaches OctKey.import_key() in authlib/jose/rfc7518/oct_key.py, where POSSIBLE_UNSAFE_KEYS fails to identify prefixed asymmetric key material. This issue is fixed in version 1.9.0.

## Affected

- `authlib >= 1.3.1, < 1.9.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
