]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
curl_sasl: if redirected, require permission to use bearer
authorDaniel Stenberg <daniel@haxx.se>
Wed, 10 Dec 2025 10:40:47 +0000 (11:40 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 11 Dec 2025 08:42:49 +0000 (09:42 +0100)
Closes #19933

lib/curl_sasl.c

index 3e4bafc19ae4492902d0cd7a365aebf985f9406b..b93bafbefac365119c68121d65572fd72c29056f 100644 (file)
@@ -452,7 +452,9 @@ static bool sasl_choose_ntlm(struct Curl_easy *data, struct sasl_ctx *sctx)
 
 static bool sasl_choose_oauth(struct Curl_easy *data, struct sasl_ctx *sctx)
 {
-  const char *oauth_bearer = data->set.str[STRING_BEARER];
+  const char *oauth_bearer =
+    (!data->state.this_is_a_follow || data->set.allow_auth_to_other_hosts) ?
+    data->set.str[STRING_BEARER] : NULL;
 
   if(sctx->user && oauth_bearer &&
      (sctx->enabledmechs & SASL_MECH_OAUTHBEARER)) {
@@ -477,7 +479,9 @@ static bool sasl_choose_oauth(struct Curl_easy *data, struct sasl_ctx *sctx)
 
 static bool sasl_choose_oauth2(struct Curl_easy *data, struct sasl_ctx *sctx)
 {
-  const char *oauth_bearer = data->set.str[STRING_BEARER];
+  const char *oauth_bearer =
+    (!data->state.this_is_a_follow || data->set.allow_auth_to_other_hosts) ?
+    data->set.str[STRING_BEARER] : NULL;
 
   if(sctx->user && oauth_bearer &&
      (sctx->enabledmechs & SASL_MECH_XOAUTH2)) {