Description
Authlib is a Python library which builds OAuth and OpenID Connect servers. In versions 1.0.0 through 1.6.5, cache-backed state/request-token storage is not tied to the initiating user session, so CSRF is possible for any attacker that has a valid state (easily obtainable via an attacker-initiated authentication flow). When a cache is supplied to the OAuth client registry, FrameworkIntegration.set_state_data writes the entire state blob under _state_{app}_{state}, and get_state_data ignores the caller’s session altogether. This issue has been patched in version 1.6.6.
Affected products
authlib: authlib
References4
- github.com/authlib/authlib/security/advisories/GHSA-fg6f-75jq-6… ExploitVendor Advisory
- github.com/authlib/authlib/security/advisories/GHSA-fg6f-75jq-6… ExploitVendor Advisory
- github.com/authlib/authlib/commit/2808378611dd6fb2532b189a90878… Patch
- github.com/authlib/authlib/commit/7974f45e4d7492ab5f527577677f2… Patch
Metrics
- CVSS 3.1
-
8.8
HIGH
Score source: NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - EPSS — exploit probability
- 0% percentile: 20 · as of 11 November 2026
- CWE
- CWE-352
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.