OAuthLib: Token grants can use attacker-supplied client_id for authorization after authenticating a different client
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
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.
Text from CVE List
Affected versions 1
- oauthlibaffected: < 4.0.0CVE List
References 4
- github.com/oauthlib/oauthlib/commit/c951a1d09f99f14e3240973fa83c4f4287d4753dFixvia CVE List
- github.com/oauthlib/oauthlib/releases/tag/v4.0.0Fixvia CVE List
- github.com/oauthlib/oauthlib/security/advisories/GHSA-7984-qgvg-3j9cAdvisoryvia CVE List
- github.com/oauthlib/oauthlib/pull/920Referencevia CVE List