{"id":"CVE-2026-114615","summary":"Authlib incomplete algorithm-confusion fix permits HMAC forgery with prefixed public keys","details":"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.","aliases":["GHSA-7vr2-2fgp-9w7p","PYSEC-2026-4355"],"modified":"2026-11-03T17:27:21.292162650Z","published":"2026-10-22T21:10:02.023Z","related":["openSUSE-SU-2026:12390-1"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-184","CWE-347"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/114xxx/CVE-2026-114615.json"},"references":[{"type":"WEB","url":"https://github.com/authlib/authlib/releases/tag/v1.9.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/114xxx/CVE-2026-114615.json"},{"type":"ADVISORY","url":"https://github.com/authlib/authlib/security/advisories/GHSA-7vr2-2fgp-9w7p"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114615"},{"type":"FIX","url":"https://github.com/authlib/authlib/commit/e3bd41cb29dcfee434453b135ffb487884baeedf"},{"type":"FIX","url":"https://github.com/authlib/authlib/pull/945"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/authlib/authlib","events":[{"introduced":"df226ab587c453029ef5083a7e1c5dc6772647dd"},{"fixed":"e8d50bd7dc442fde1364291df9c429d1da91c0cb"},{"fixed":"e3bd41cb29dcfee434453b135ffb487884baeedf"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"1.3.1"},{"fixed":"1.9.0"}],"source":"CPE_RANGE","cpe":"cpe:2.3:a:authlib:authlib:*:*:*:*:*:*:*:*"},{"range":[{"fixed":"e3bd41cb29dcfee434453b135ffb487884baeedf"}],"source":"REFERENCES_COMMIT"},{"range":[{"fixed":"e8d50bd7dc442fde1364291df9c429d1da91c0cb"}],"source":"REFERENCES_TAG","original_tag":"v1.9.0"}]}}],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-114615.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"}]}