PatchSiren cyber security CVE debrief
CVE-2026-118669 oauthlib CVE debrief
OAuthLib's token grant handlers can authenticate one client while authorizing the grant type and requested scopes using a different, attacker-supplied `client_id` from the request body. This issue affects OAuthlib provider deployments using the OAuth2 token endpoint handling for `client_credentials` and `password` / Resource Owner Password Credentials flows.
- Vendor
- oauthlib
- Product
- Unknown
- CVSS
- HIGH 8.4
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-10-30
- Original CVE updated
- 2026-10-30
- Advisory published
- 2026-10-30
- Advisory updated
- 2026-10-30
Who should care
Defenders responsible for OAuthlib provider deployments, especially those using the affected token grant flows, should assess exposure and prioritize verification and updates. This includes reviewing client configurations, grant types, and monitoring for suspicious token grant requests. Additionally, defenders should consider the potential for privilege escalation and security issues in OAuthlib provider deployments, and take steps to verify and update
Why it matters
This vulnerability allows an attacker to use a different client_id for authorization after authenticating a different client, potentially leading to privilege escalation and security issues in OAuthlib provider deployments.
- An authenticated low-privilege confidential client can submit another client's `client_id` in the token request body and cause grant and scope validation to run under that other client identity
- Potential for privilege escalation in OAuthlib provider deployments
- Need for verification of client configurations and grant types
- Possible impact on client security and scope validation
Technical summary
OAuthLib's token grant handlers can authenticate one client while authorizing the grant type and requested scopes using a different, attacker-supplied `client_id` from the request body. In affected token grant flows, `authenticate_client(request)` sets `request.client` to the authenticated client object, but OAuthlib does not require `request.client_id` to match `request.client.client_id`. This issue allows an authenticated low-privilege confidential client to submit another client's `client_id` in the token request body, potentially leading to privilege escalation and security issues in OAuthlib provider deployments. The affected public surface is the OAuth2 token endpoint handling for `client_credentials` and
Defensive priority
Defenders should prioritize verifying and updating OAuthlib to version 4.0.0 or later, and assess exposure in their deployments, especially where lower-privilege confidential clients and clients with broader grants or scopes coexist.
Recommended defensive actions
- Verify OAuthlib version and update to 4.0.0 or later if necessary
- Assess exposure in OAuthlib provider deployments
- Review and adjust client configurations and grant types
- Monitor for suspicious token grant requests
- Review compensating controls for exposed systems while remediation is scheduled and verified
- Check relevant monitoring, detection, and logs for exposed assets that need extra review
- Track exceptions, retest remediated assets, and close the item only after evidence is documented
Evidence notes
The issue is relevant to OAuthlib provider deployments where an attacker has credentials for one valid lower-privilege confidential client, another client has broader grants or scopes, and the application validator uses the `client_id`.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-118669 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-118669
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-118669 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-118669
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
OAuthLib: Token grants can use attacker-supplied client_id for authorization after authenticatin
Unverified legacy reference
URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-7984-qgvg-3j9c.json
osv_dev
-
Source reference
Unverified legacy reference
URL: https://github.com/oauthlib/oauthlib/security/advisories/GHSA-7984-qgvg-3j9c
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/oauthlib/oauthlib/pull/920
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/oauthlib/oauthlib/commit/c951a1d09f99f14e3240973fa83c4f4287d4753d
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/oauthlib/oauthlib
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/oauthlib/oauthlib/releases/tag/v4.0.0
Supplemental source
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.