{"schemaVersion":3,"id":"CVE-2026-28498","aliases":["GHSA-m344-f55w-2m6j","PYSEC-2026-2117","UBUNTU-CVE-2026-28498","DEBIAN-CVE-2026-28498"],"status":"published","duplicateOf":null,"title":null,"description":"Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a library-level vulnerability was identified in the Authlib Python library concerning the validation of OpenID Connect (OIDC) ID Tokens. Specifically, the internal hash verification logic (_verify_hash) responsible for validating the at_hash (Access Token Hash) and c_hash (Authorization Code Hash) claims exhibits a fail-open behavior when encountering an unsupported or unknown cryptographic algorithm. This flaw allows an attacker to bypass mandatory integrity protections by supplying a forged ID Token with a deliberately unrecognized alg header parameter. The library intercepts the unsupported state and silently returns True (validation passed), inherently violating fundamental cryptographic design principles and direct OIDC specifications. This issue has been patched in version 1.6.9.","dates":{"published":"2026-03-16T18:03:28.821Z","modified":"2026-09-10T12:04:48.234Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":9.1,"severity":"critical","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.2,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":9.1,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Pypi","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","exploitability":10,"impact":6,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Ubuntu","score":8.2,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Ubuntu","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","exploitability":10,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Debian","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","exploitability":10,"impact":6,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.2,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00267,"percentile":0.17688,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":0.04100000000000002,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.00226},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00267,"percentile":0.17688}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00226,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00257,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00267,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00267,"percentile":0.17688}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[{"id":"GITHUB_AUTHLIB_AUTHLIB","name":"Authlib","source":"github","url":"https://github.com/authlib/authlib/security/advisories/GHSA-9ggr-2464-2j32","maturity":"poc","reliabilityScore":0.3,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":1,"weaknesses":[{"id":"CWE-354","name":"Improper Validation of Integrity Check Value","description":"The product does not validate or incorrectly validates the integrity check values or \"checksums\" of a message. This may prevent it from detecting if the data has been modified or corrupted in transmission.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/354.html"},{"id":"CWE-573","name":"Improper Following of Specification by Caller","description":"The product does not follow or incorrectly follows the specifications as required by the implementation language, environment, framework, protocol, or platform.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/573.html"},{"id":"CWE-325","name":"Missing Cryptographic Step","description":"The product does not implement a required step in a cryptographic algorithm, resulting in weaker encryption than advertised by the algorithm.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/325.html"}],"affected":[{"vendor":"authlib","product":"authlib","name":"authlib","label":"authlib","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 1.6.9","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.6.9","eol":null,"hubHref":"/vendor/authlib/authlib"},{"vendor":"debian","product":"python-authlib","name":"python-authlib","label":"python-authlib","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/python-authlib","purlType":"deb","versions":[{"text":"< 1.2.0-1+deb12u2","noFixRecorded":false,"fixedIn":null},{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 1.6.9-1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.2.0-1+deb12u2 | All versions (No fix recorded) | < 1.6.9-1","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"python-authlib","name":"python-authlib","label":"python-authlib","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/python-authlib","purlType":"deb","versions":[{"text":"< 0.15.5-1ubuntu0.1~esm2","noFixRecorded":false,"fixedIn":null},{"text":"< 1.3.0-1ubuntu0.1~esm2","noFixRecorded":false,"fixedIn":null},{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 1.6.7-1ubuntu0.1~esm1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.15.5-1ubuntu0.1~esm2 | < 1.3.0-1ubuntu0.1~esm2 | All versions (No fix recorded) | < 1.6.7-1ubuntu0.1~esm1","eol":null,"hubHref":null},{"vendor":"PyPI","product":"authlib","name":"authlib","label":"authlib","ecosystem":"PyPI","cpePart":null,"purl":"pkg:pypi/authlib","purlType":"pypi","versions":[{"text":"< 1.6.9","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.6.9","eol":null,"hubHref":null}],"affectedCount":4,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/authlib/authlib/security/advisories/GHSA-m344-f55w-2m6j","label":"github.com/authlib/authlib/security/advisories/GHSA-m344-f55w-2m6j","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","EVIDENCE","REPORT","Exploit","Mitigation","Vendor Advisory"]},{"url":"https://github.com/authlib/authlib/commit/b9bb2b25bf8b7e01512d847a95c1749646eaa72b","label":"github.com/authlib/authlib/commit/b9bb2b25bf8b7e01512d847a95c1749646eaa72b","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch"]},{"url":"https://github.com/authlib/authlib/releases/tag/v1.6.9","label":"github.com/authlib/authlib/releases/tag/v1.6.9","hostname":"github.com","tags":["X Refsource MISC","WEB","Advisory","Product","Release Notes"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-28498","label":"access.redhat.com/security/cve/CVE-2026-28498","hostname":"access.redhat.com","tags":["VDB Entry","X Refsource REDHAT","WEB"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2448182","label":"bugzilla.redhat.com/show_bug.cgi?id=2448182","hostname":"bugzilla.redhat.com","tags":["Issue Tracking","X Refsource REDHAT","REPORT"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-28498.json","label":"security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-28498.json","hostname":"security.access.redhat.com","tags":["X Sadp Csaf Vex","WEB"]},{"url":"https://access.redhat.com/errata/RHSA-2026:6309","label":"access.redhat.com/errata/RHSA-2026:6309","hostname":"access.redhat.com","tags":["Vendor Advisory","X Refsource REDHAT","Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:6912","label":"access.redhat.com/errata/RHSA-2026:6912","hostname":"access.redhat.com","tags":["Vendor Advisory","X Refsource REDHAT","Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:6720","label":"access.redhat.com/errata/RHSA-2026:6720","hostname":"access.redhat.com","tags":["Vendor Advisory","X Refsource REDHAT","Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:6568","label":"access.redhat.com/errata/RHSA-2026:6568","hostname":"access.redhat.com","tags":["Vendor Advisory","X Refsource REDHAT","Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:6497","label":"access.redhat.com/errata/RHSA-2026:6497","hostname":"access.redhat.com","tags":["Vendor Advisory","X Refsource REDHAT","Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:6567","label":"access.redhat.com/errata/RHSA-2026:6567","hostname":"access.redhat.com","tags":["Vendor Advisory","X Refsource REDHAT","Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-28498","label":"nvd.nist.gov/vuln/detail/CVE-2026-28498","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/authlib/authlib","label":"github.com/authlib/authlib","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://ubuntu.com/security/CVE-2026-28498","label":"ubuntu.com/security/CVE-2026-28498","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-28498","label":"www.cve.org/CVERecord?id=CVE-2026-28498","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://ubuntu.com/security/notices/USN-8557-1","label":"ubuntu.com/security/notices/USN-8557-1","hostname":"ubuntu.com","tags":["Advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-28498","label":"security-tracker.debian.org/tracker/CVE-2026-28498","hostname":"security-tracker.debian.org","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2026:20392-1","SUSE-SU-2026:0975-1","USN-8557-1"],"duplicates":[],"related":["OPENSUSE-SU-2026:20392-1","SUSE-SU-2026:0975-1","USN-8557-1"]},"timeline":[{"kind":"published","date":"2026-03-16T18:03:28.821Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-10T12:04:48.234Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":70,"level":"high","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T13:10:23.952Z","stale":false,"partial":false}}