Skip to content
OpenAdvisories
High · 8.4 Public exploit CVE-2026-118669 EUVD-2026-112488GHSA-7984-qgvg-3j9c

OAuthLib: Token grants can use attacker-supplied client_id for authorization after authenticating a different client

Published Oct 28, 2026 · Updated Nov 3, 2026 · Assigned by GitHub_M

Description

OAuthLib is an implementation of the OAuth request-signing logic for Python 3.6+. Prior to 4.0.0, the client_credentials and Resource Owner Password Credentials token grant handlers can authenticate request.client as one confidential client while retaining an attacker-supplied request.client_id for validate_grant_type and validate_scopes. A lower-privilege authenticated client can therefore cause grant and scope authorization to use another client's identity when an application validator relies on the documented client_id argument, potentially issuing tokens with unauthorized grants or scopes. Validators that authorize exclusively from request.client may not be affected. This issue is fixed in version 4.0.0.

Affected products

VendorProductAffectedFixed
oauthlib oauthlib < 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
RHEL 10 python-oauthlib +1 3.2.2-6.el10_3.1 RHSA-2026:98641
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 9.8 EUS python-oauthlib +1 3.1.1-5.el9_8.1 RHSA-2026:99167
RHEL 8.6 EUS Long Life python-oauthlib +1 2.1.0-1.el8_6.1 RHSA-2026:98118
RHEL 8.6 AUS python-oauthlib +1 2.1.0-1.el8_6.1 RHSA-2026:98118

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 10 python3-oauthlib 3.2.2-6.el10_3.1 RLSA-2026:98641
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed python-oauthlib 4.0.1-1.1 openSUSE-SU-2026:12520-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 python-oauthlib No fix yet —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI oauthlib < 4.0.0 4.0.0 GHSA-7984-qgvg-3j9c

Advisories 6

References