Authlib is widely used in Python web apps for JWT/OAuth. A signature-verification bypass enables token forgery and widespread auth bypass across services, posing enterprise-scale risk.
CVE-2026-96760
Authlib JWS deserialize_json bypasses signature verification, enabling forged tokens.
Is CVE-2026-96760 being exploited?
Not confirmed. CVE-2026-96760 does not appear in CISA's Known Exploited Vulnerabilities catalog, which records only exploitation that has been observed and reported publicly. That is evidence of absence of a report, not evidence the flaw is unattacked. EPSS currently estimates a 0.13% probability of exploitation in the next 30 days.
How severe is CVE-2026-96760?
CVE-2026-96760 is rated Critical with a CVSS score of 9.8. Severity describes how bad exploitation would be, not how likely it is: pair it with exploitation evidence before deciding what to patch first.
Is there a patch for CVE-2026-96760?
Not known from our data. No patch reference has been recorded for CVE-2026-96760, which is not the same as no patch existing — a fix may have shipped without a tagged reference, or after this record was written. The vendor advisory is the only authority on whether a fix exists, and mitigations may be available regardless.
What does CVE-2026-96760 affect?
CVE-2026-96760 affects Authlib <= 1.7.2, Python apps using Authlib JWS/JWT, OAuth2/OIDC integrations. Confirm the exact affected versions against the vendor advisory before deciding you are exposed.
What should I do about CVE-2026-96760?
Avoid deserialize_json; enforce JWS signature checks server-side; update Authlib when vendor patch is released.
Exploitation status reflects CISA's KEV catalog as we last synced it. Check the catalog directly.
Allows attackers to craft JWS/JWT payloads accepted as verified, enabling auth bypass, user impersonation, API access, and privilege escalation.
Immediate action required
- affected1.7.2
As published in the CVE Program record. A version outside these ranges is not a statement that it is unaffected — vendors sometimes understate a range, and distribution-backported builds carry upstream numbers that do not reflect what was patched into them.