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.
The web application does not, or cannot, sufficiently verify whether a request was intentionally provided by the user who sent the request, which could have originated from an unauthorized actor.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Authlib | Authlib | * | 1.6.6 (excluding) |
| Red Hat Quay 3.15 | RedHat | quay/quay-rhel8:1775169219 | * |
| Red Hat Quay 3.16 | RedHat | quay/quay-rhel9:1775069491 | * |
| Red Hat Quay 3.16 | RedHat | quay/quay-rhel9:1775169226 | * |
| Red Hat Satellite 6.18 | RedHat | satellite/foreman-mcp-server-rhel9:1782228427 | * |
| Python-authlib | Ubuntu | esm-apps/noble | * |
| Python-authlib | Ubuntu | noble | * |
| Python-authlib | Ubuntu | plucky | * |
| Python-authlib | Ubuntu | questing | * |
| Python-authlib | Ubuntu | upstream | * |