Skip to content
OpenAdvisories

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

VendorProductAffectedFixed
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.

ReleasePackageFixed inAdvisory
Debian 14 python-oauthlib No fix yet —
Debian 13 python-oauthlib No fix yet —
Debian 12 python-oauthlib No fix yet —
ReleasePackageFixed inAdvisory
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)
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS python-oauthlib No fix yet —
Ubuntu 16.04 LTS python-oauthlib No fix yet —
ReleasePackageFixed inAdvisory
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)
ReleasePackageFixed inAdvisory
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
ReleasePackageFixed inAdvisory
openSUSE Leap 16.0 python-oauthlib 3.2.2-160000.3.1 openSUSE-SU-2026:22103-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 python-oauthlib 3.2.2-4 —

Wolfi

ReleasePackageFixed inAdvisory
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

EcosystemPackageAffectedFixedRecord
PyPI oauthlib >= 3.0.0, < 4.0.0 4.0.0 GHSA-xpv3-w29h-x7cv

Advisories 5

References