Description
OAuthLib is an implementation of the OAuth request-signing logic for Python 3.6+. From 3.0.0 until 4.0.0, OAuthLib's PKCE checks in oauthlib/oauth2/rfc6749/grant_types/authorization_code.py compare attacker-supplied code_verifier values with stored challenges using ordinary string equality in code_challenge_method_plain and code_challenge_method_s256. Because the comparison can return after a length difference or the first mismatching character, repeated token endpoint measurements can reveal common-prefix timing information that could potentially allow recovery of the code_verifier, unauthorized access-token acquisition, and account takeover. Practical exploitation requires an intercepted, single-use authorization code and enough measurements to overcome real-world network noise; the local timing benchmark does not establish practical remote account takeover, so the weakness remains a defense-in-depth concern. This issue is fixed in version 4.0.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| oauthlib | oauthlib | >= 3.0.0, < 4.0.0 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | python-oauthlib | No fix yet | — |
| Debian 13 | python-oauthlib | No fix yet | — |
| Debian 12 | python-oauthlib | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | python-oauthlib | No fix yet | — |
| Ubuntu 26.04 LTS | python-oauthlib | No fix yet | — |
| Ubuntu 24.04 LTS | python-oauthlib | No fix yet | — |
| Ubuntu 22.04 LTS | python-oauthlib | No fix yet | — |
| Ubuntu 20.04 LTS | python-oauthlib | No fix yet | — |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | python-oauthlib | No fix yet | — |
| Ubuntu 16.04 LTS | python-oauthlib | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP4 | python-oauthlib | 3.2.2-150400.12.10.1 | SUSE-SU-2026:4810-1 |
| SLES 3 | python-oauthlib | 3.2.2-150400.12.10.1 | SUSE-SU-2026:4810-1 |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | python-oauthlib | 3.2.2-160000.3.1 | SUSE-SU-2026:24246-1 |
| SLES 16.0 | python-oauthlib | 3.2.2-160000.3.1 | SUSE-SU-2026:24246-1 |
| SLE Micro 6.2 | python-oauthlib | 3.2.2-160000.3.1 | SUSE-SU-2026:24189-1 |
| SLE Micro 6.0 | python-oauthlib | 3.2.2-159998.1.1 | SUSE-SU-2026:24139-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 16.0 | python-oauthlib | 3.2.2-160000.3.1 | openSUSE-SU-2026:22103-1 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | python-oauthlib | 3.2.2-4 | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | az | 2.90.0-r2 | — |
| Wolfi rolling | dask-kubernetes | 2026.3.0-r15 | — |
| Wolfi rolling | datadog-agent-7.77-core-integrations | No fix yet | — |
| Wolfi rolling | datadog-agent-7.78-core-integrations | 7.78.4-r28 | — |
| Wolfi rolling | datadog-agent-7.79-core-integrations | 7.79.2-r29 | — |
| Wolfi rolling | datadog-agent-7.80-core-integrations | 7.80.4-r20 | — |
| Wolfi rolling | datadog-agent-7.81-core-integrations | 7.81.3-r9 | — |
| Wolfi rolling | ggshield | 1.55.0-r3 | — |
| Wolfi rolling | jupyter-base-notebook | 7.6.3-r1 | — |
| Wolfi rolling | k8s-sidecar | 2.11.2-r3 | — |
| Wolfi rolling | katib-earlystopping | 0.19.0-r42 | — |
| Wolfi rolling | kserve-storage-controller | 0.21.0-r1 | — |
| Wolfi rolling | kubeflow-jupyter-web-app | 1.10.0-r28 | — |
| Wolfi rolling | kubeflow-pipelines-apiserver | 2.17.2-r6 | — |
| Wolfi rolling | kubeflow-pipelines-visualization-server | 2.17.2-r3 | — |
| Wolfi rolling | kubeflow-volumes-web-app | 1.10.0-r26 | — |
| Wolfi rolling | open-webui | 0.11.4-r1 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | oauthlib | >= 3.0.0, < 4.0.0 | 4.0.0 | GHSA-xpv3-w29h-x7cv |
Advisories 5
- SUSE-SU-2026:4810-1 Security update for python-oauthlib SUSE / openSUSE Security Updates · Oct 21, 2026
- SUSE-SU-2026:24246-1 Security update for python-oauthlib SUSE / openSUSE Security Updates · Oct 21, 2026
- SUSE-SU-2026:24189-1 Security update for python-oauthlib SUSE / openSUSE Security Updates · Oct 20, 2026
- openSUSE-SU-2026:22103-1 Security update for python-oauthlib SUSE / openSUSE Security Updates · Oct 19, 2026
- SUSE-SU-2026:24139-1 Security update for python-oauthlib SUSE / openSUSE Security Updates · Oct 15, 2026
References
- https://github.com/oauthlib/oauthlib/security/advisories/GHSA-xpv3-w29h-x7cv
- https://github.com/oauthlib/oauthlib/pull/963
- https://github.com/oauthlib/oauthlib/commit/74664d3fe037a354e180e305135c6bab1747a6b0
- https://github.com/oauthlib/oauthlib/releases/tag/v4.0.0
- https://github.com/pypa/advisory-database/tree/main/vulns/oauthlib/PYSEC-2026-4114.yaml