Every CVE Search/ Get API key

CVE-2026-41425

Authlib: Cross-site request forging when using cache

5.4 MediumFix available

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
None

Exploit likelihood

0.11%Up 0.1 points since Apr 25, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.4

Authlib: Cross-site request forging when using cache

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
CVE-2026-41425
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Weakness
CWE-352
Updated
2026-11-02
EUVDEUVD-2026-25615 5.4

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
EUVD-2026-25615
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-jj8c-mmj3-mmgv 5.4

Authlib: Cross-site request forging when using cache

Summary

There is no CSRF protection on the cache feature on most integrations clients.

Details

In authlib.integrations.starlette_client.OAuth, no CSRF protection is set up when using the cache parameter. When not using the cache parameter, the use of SessionMiddleware ties the client to the auth state, preventing CSRF attacks. With the cache, there is no such mechanism. Other integratons have the same issue, it's not just starlette.

The state parameter is taken from the callback URL and the state is fetched from the cache without checking that it is the same client calling the redirect endpoint as was the one that initiated the auth flow.

This issue is documented in RFC 6749 section 10.12: https://datatracker.ietf.org/doc/html/rfc6749#section-10.12

PoC

  • Set up a Starlette integration with a cache
  • The attacker starts the auth flow up until before the callback URL is followed.
  • The attacked sends the redirect URL to the victim
  • The victim now completes the authorisation

Impact

This impacts all users that use the cache to store auth state.

All users will be vulnerable to CSRF attacks and may have an attacker's account tied to their own.

Record
GHSA-jj8c-mmj3-mmgv
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Weakness
CWE-352
Updated
2026-11-02
NVD 5.4

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
CVE-2026-41425
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Weakness
CWE-352
Updated
2026-11-02
OSV 5.4

Authlib: Cross-site request forging when using cache

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
CVE-2026-41425
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Weakness
CWE-352
Updated
2026-11-03
OSVDEBIAN-CVE-2026-41425 5.4

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
DEBIAN-CVE-2026-41425
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Updated
2026-11-02
Show 8 moreShow less
OSVGHSA-jj8c-mmj3-mmgv 5.4

Authlib: Cross-site request forging when using cache

Summary

There is no CSRF protection on the cache feature on most integrations clients.

Details

In authlib.integrations.starlette_client.OAuth, no CSRF protection is set up when using the cache parameter. When not using the cache parameter, the use of SessionMiddleware ties the client to the auth state, preventing CSRF attacks. With the cache, there is no such mechanism. Other integratons have the same issue, it's not just starlette.

The state parameter is taken from the callback URL and the state is fetched from the cache without checking that it is the same client calling the redirect endpoint as was the one that initiated the auth flow.

This issue is documented in RFC 6749 section 10.12: https://datatracker.ietf.org/doc/html/rfc6749#section-10.12

PoC

  • Set up a Starlette integration with a cache
  • The attacker starts the auth flow up until before the callback URL is followed.
  • The attacked sends the redirect URL to the victim
  • The victim now completes the authorisation

Impact

This impacts all users that use the cache to store auth state.

All users will be vulnerable to CSRF attacks and may have an attacker's account tied to their own.

Record
GHSA-jj8c-mmj3-mmgv
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Weakness
CWE-352
Updated
2026-11-02
OSVPYSEC-2026-25 5.4

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
PYSEC-2026-25
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVROOT-APP-PYPI-CVE-2026-41425 5.4

CVE-2026-41425 in Authlib - Patched by Root

Root has patched CVE-2026-41425 in the Authlib package for Root:PyPI. Multiple fixed versions available.

Record
ROOT-APP-PYPI-CVE-2026-41425
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVROOT-APP-PYPI-GHSA-jj8c-mmj3-mmgv 5.4

GHSA-jj8c-mmj3-mmgv in Authlib - Patched by Root

Root has patched GHSA-jj8c-mmj3-mmgv in the Authlib package for Root:PyPI. Multiple fixed versions available.

Record
ROOT-APP-PYPI-GHSA-jj8c-mmj3-mmgv
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-41425 5.4

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth. This vulnerability is fixed in 1.6.11.

Record
UBUNTU-CVE-2026-41425
CVSS 3.1
5.4 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVopenSUSE-SU-2026:12390-1 No score

python313-Authlib-1.9.1-1.1 on GA media

These are all security issues fixed in the python313-Authlib-1.9.1-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:12390-1
Updated
2026-11-03
OSVSUSE-SU-2026:2968-1 No score

Security update for python-Authlib

This update for python-Authlib fixes the following issues

  • CVE-2026-41425: Prior to 1.6.11, there is no CSRF protection on the cache feature in authlib.integrations.starlette_client.OAuth (bsc#1263114).
  • CVE-2026-44681: Prior to 1.6.12 and 1.7.1, an unauthenticated open redirect in Authlib's OpenIDImplicitGrant and OpenIDHybridGrant authorization endpoint exists (bsc#1266665).
Record
SUSE-SU-2026:2968-1
Updated
2026-11-02
OSVUSN-8557-1 No score

python-authlib vulnerabilities

Jay Neiva and Mauro Carrillo discovered that Authlib did not properly validate cryptographic keys embedded in JWT headers. An attacker could possibly use this issue to forge trusted tokens, resulting in authentication and authorization bypass. (CVE-2026-27962)

Jay Neiva and Mauro Carrillo discovered that Authlib incorrectly handled RSA1_5 encrypted tokens. An attacker could possibly use this issue to recover sensitive encrypted information, resulting in information disclosure. (CVE-2026-28490)

Jay Neiva and Mauro Carrillo discovered that Authlib did not properly reject unsupported cryptographic algorithms when validating OpenID Connect ID tokens. An attacker could possibly use this issue to bypass token integrity checks, resulting in authentication bypass. (CVE-2026-28498)

Johnny Deuss discovered that Authlib did not provide cross-site request forgery protection for the OAuth cache feature in its Starlette integration. An attacker could possibly use this issue to perform unauthorized OAuth actions, resulting in cross-site request forgery. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-41425)

Record
USN-8557-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
authlib
PyPI
before 1.6.11
1.6.11
python-authlib
Debian:12
before 1.2.0-1+deb12u2, plus listed versions
1.2.0-11.2.0-1+deb12u1
1.2.0-1+deb12u2
python-authlib
Debian:13
All versions, plus listed versions
1.6.0-11.6.0-1+deb13u11.6.1-11.6.3-11.6.4-1
Show 8 moreShow less
1.6.5-11.6.6-11.6.7-11.6.8-11.6.9-11.7.0-11.7.2-11.7.2-2
None known
python-authlib
Debian:14
before 1.7.0-1, plus listed versions
1.6.0-11.6.1-11.6.3-11.6.4-11.6.5-1
Show 4 moreShow less
1.6.6-11.6.7-11.6.8-11.6.9-1
1.7.0-1
authlib
PyPI
before 1.6.11, plus listed versions
0.10.100.110.120.12.1
Show 45 moreShow less
0.130.140.14.10.14.20.14.30.150.15.10.15.20.15.30.15.40.15.50.15.60.1rc00.20.2.10.30.40.4.10.50.5.10.60.70.80.91.0.01.0.0a11.0.0a21.0.0b11.0.0b21.0.0rc11.0.11.1.01.2.01.2.11.3.01.3.11.3.21.4.01.4.11.5.01.5.11.5.21.6.01.6.11.6.10
1.6.11
Authlib
Root:PyPI
before 1.6.6+aikido.6
1.6.6+aikido.61.6.10+aikido.31.6.10+aikido.41.6.6+aikido.71.6.6+aikido.8
rootio-Authlib
Root:PyPI
before 1.6.6+root.io.6
1.6.6+root.io.61.6.10+root.io.31.6.10+root.io.41.6.6+root.io.7
Authlib
Root:PyPI
before 1.6.6+aikido.5
1.6.6+aikido.51.6.10+aikido.21.6.6+aikido.61.6.10+aikido.31.6.10+aikido.41.6.6+aikido.71.6.6+aikido.8
rootio-Authlib
Root:PyPI
before 1.6.10+root.io.1
1.6.10+root.io.11.6.6+root.io.41.6.6+root.io.51.6.10+root.io.21.6.6+root.io.61.6.10+root.io.31.6.10+root.io.41.6.6+root.io.7
python-Authlib
SUSE:Linux Enterprise Module for Python 3 15 SP7
From an advisory covering 2 CVEs
before 1.3.1-150600.3.22.1
1.3.1-150600.3.22.1
Show 8 moreShow less
Affected packages
PackageAffectedFixed
python-authlib
Ubuntu:Pro:24.04:LTS
before 1.3.0-1ubuntu0.1~esm2, plus listed versions
1.2.1-11.3.0-11.3.0-1ubuntu0.1~esm1
1.3.0-1ubuntu0.1~esm2
python-authlib
Ubuntu:25.10
All versions, plus listed versions
1.5.1-11.5.2-11.6.0-1
None known
python-authlib
Ubuntu:26.10
All versions, plus listed versions
1.6.7-11.7.2-11.7.2-2
None known
python-authlib
Ubuntu:Pro:26.04:LTS
before 1.6.7-1ubuntu0.1~esm1, plus listed versions
1.6.0-11.6.5-11.6.6-11.6.7-1
1.6.7-1ubuntu0.1~esm1
python-authlib
Ubuntu:Pro:22.04:LTS
From an advisory covering 4 CVEs
before 0.15.5-1ubuntu0.1~esm2, plus listed versions
0.15.4-10.15.5-10.15.5-1ubuntu0.1~esm1
0.15.5-1ubuntu0.1~esm2
python-authlib
Ubuntu:Pro:24.04:LTS
From an advisory covering 4 CVEs
before 1.3.0-1ubuntu0.1~esm2, plus listed versions
1.2.1-11.3.0-11.3.0-1ubuntu0.1~esm1
1.3.0-1ubuntu0.1~esm2
python-authlib
Ubuntu:Pro:26.04:LTS
From an advisory covering 4 CVEs
before 1.6.7-1ubuntu0.1~esm1, plus listed versions
1.6.0-11.6.5-11.6.6-11.6.7-1
1.6.7-1ubuntu0.1~esm1
python-Authlib
openSUSE:Tumbleweed
From an advisory covering 10 CVEs
before 1.9.1-1.1
1.9.1-1.1

History

History
RecordedChangedSources
affected
affected, aliases, facts, referencesOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-41425 is a medium vulnerability (CVSS 5.4) in Authlib, published April 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.11%, the 1st percentile. Fixed in authlib 1.6.11.

References

Show 21 moreShow less
This page doesn't list everything

Left out here: 8 versions. The JSON record has them.

MoveEnter Open