Cloudanix VulnDB

CVE-2024-45336

Medium · 6.1

CVSS

6.1

EPSS

0.7%

Published

Jan 28, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A software flaw could accidentally send a user's login information to the wrong website if they are redirected multiple times in a specific way.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Moderate
Impact
Data Exposure
Component
Library
Class
Credential Exposure
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability causes an HTTP client to incorrectly re-attach sensitive headers, such as 'Authorization', to a request following a specific redirect sequence. If a request to a trusted domain is redirected to an external domain, and that external domain issues a subsequent redirect to itself, the client will erroneously include the sensitive headers from the original request. This results in the leakage of credentials or session tokens to the external domain.

Why it matters to the business

This flaw can lead to the exposure of user credentials and session tokens to malicious third parties. An attacker who successfully exploits this could impersonate users, gain unauthorized access to sensitive data, and perform actions on behalf of the compromised user. This poses a significant risk to data confidentiality, user privacy, and can result in account takeovers.

How an attack unfolds

An attacker would first set up a malicious web server. They would then trick a user of a vulnerable application into making a request that gets redirected to this server. For example, the user clicks a link that directs them to a legitimate service, which then issues a redirect to the attacker's server. The attacker's server then issues a second redirect to another page on the same malicious server. Due to the flaw, the user's client would incorrectly attach the original 'Authorization' header (intended for the legitimate service) to the request for the second page on the attacker's server. The attacker can then log this header and steal the user's session token or credentials.

How to fix it

To remediate this vulnerability, update the affected component to a version where the HTTP client correctly handles headers during redirect chains. For the specified Red Hat OpenShift products, update the 'coreos-installer' package and its dependencies to version '0:0.8.0-4.rhaos4.7.el8' or later. For other software, identify the underlying HTTP client library and apply the vendor-supplied patch that corrects this behavior.

How to confirm the fix worked

To validate the fix, create a test that simulates the attack. Set up a local web server that first redirects a request from a trusted origin (e.g., localhost:8000) to a different origin (e.g., localhost:9000), and then has the second origin redirect to itself. Send a request with a test 'Authorization' header using the client being tested. A patched client will not send the 'Authorization' header to the final destination (localhost:9000), while a vulnerable one will. Check the server logs at the final destination to confirm whether the header was received.

Typical attack path

  1. An attacker establishes a web server they control that is configured to issue redirects.
  2. The attacker induces a user to initiate a request from a vulnerable client to a legitimate service, where the request includes a sensitive header (e.g., 'Authorization').
  3. The legitimate service responds with a redirect to the attacker's web server.
  4. The attacker's server receives the initial redirected request and responds with a second redirect to a different URL on the same attacker-controlled domain.
  5. The vulnerable client follows the second redirect and incorrectly attaches the sensitive header from the original request.
  6. The attacker's server receives the request, captures the sensitive header, and gains access to the user's credentials or session token.

How to detect it

Detecting historical exploitation requires analyzing detailed client, network, or web server logs. Look for a sequence of events where a client request containing a sensitive header (like 'Authorization' or 'Cookie') is followed by a redirect to an external domain, which is then immediately followed by another request to that same external domain. Correlating the presence of the original sensitive header in the final request to the external domain is the key indicator of exploitation. This is most feasible with full packet capture (PCAP) analysis or advanced application-level logging.

What your security team should do

  • Prioritize patching all client applications that use the vulnerable HTTP library, starting with those that handle sensitive data or are used by privileged accounts.
  • Review and enforce network egress filtering to restrict client applications from connecting to untrusted or non-whitelisted external domains, which can limit the impact of a successful exploit.
  • If immediate patching is not feasible, consider deploying a network proxy that can inspect and strip sensitive headers like 'Authorization' from requests that are being redirected across different domains.

The record

The HTTP client drops sensitive headers after following a cross-domain redirect. For example, a request to a.com/ containing an Authorization header which is redirected to b.com/ will not send that header to b.com. In the event that the client received a subsequent same-domain redirect, however, the sensitive headers would be restored. For example, a chain of redirects from a.com/, to b.com/1, and finally to b.com/2 would incorrectly send the Authorization header to b.com/2.

Affected packages

Ecosystem Package Introduced Fixed
Go stdlib 0 1.22.11
AlmaLinux:10 delve 0 1.24.1-1.el10_0
AlmaLinux:10 go-toolset 0 1.23.7-1.el10_0.alma.1
AlmaLinux:10 golang 0 1.23.7-1.el10_0.alma.1
AlmaLinux:10 golang-bin 0 1.23.7-1.el10_0.alma.1
AlmaLinux:10 golang-docs 0 1.23.7-1.el10_0.alma.1
AlmaLinux:10 golang-misc 0 1.23.7-1.el10_0.alma.1
AlmaLinux:10 golang-src 0 1.23.7-1.el10_0.alma.1
AlmaLinux:10 golang-tests 0 1.23.7-1.el10_0.alma.1
AlmaLinux:8 delve 0 1.24.1-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 go-toolset 0 1.23.6-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 golang 0 1.23.6-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 golang-bin 0 1.23.6-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 golang-docs 0 1.23.6-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 golang-misc 0 1.23.6-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 golang-src 0 1.23.6-1.module_el8.10.0+3977+66935a26
AlmaLinux:8 golang-tests 0 1.23.6-1.module_el8.10.0+3977+66935a26
Bitnami golang 0 1.22.11
Chainguard aactl 0 0.4.12-r22
Chainguard actions-runner-controller 0 0.10.1-r2
Chainguard actions-runner-controller-fips 0 0.10.1-r2
Chainguard age 0 1.2.1-r1
Chainguard age-fips 0 1.2.1-r1
Chainguard amazon-cloudwatch-agent-fips 0 1.300052.0-r0
Chainguard amazon-k8s-cni 0 1.19.2-r1
Chainguard amazon-k8s-cni-fips 0 1.19.2-r2
Chainguard amazon-k8s-cni-init-fips 0 1.19.2-r2
Chainguard amazon-k8s-cni-init-fips-compat 0 1.19.2-r2
Chainguard ansible-operator 0 1.37.1-r1
Chainguard apache-beam-java-11-sdk 0 2.62.0-r0
Chainguard apache-beam-java-17-sdk 0 2.62.0-r0
Chainguard apache-beam-java-21-sdk 0 2.62.0-r0
Chainguard apache-beam-java-sdk 0 2.62.0-r0
Chainguard apache-beam-python-3.11-sdk 0 2.62.0-r0
Chainguard argo-cd-fips-2.10 0 2.10.18-r5
Chainguard argo-cd-fips-2.10-compat 0 2.10.18-r5
Chainguard argo-cd-fips-2.10-repo-server 0 2.10.18-r5
Chainguard argo-cd-fips-2.11 0 2.11.13-r0
Chainguard argo-cd-fips-2.11-compat 0 2.11.13-r0
Chainguard argo-cd-fips-2.11-repo-server 0 2.11.13-r0
Chainguard argo-cd-fips-2.12 0 2.12.10-r0
Chainguard argo-cd-fips-2.12-compat 0 2.12.10-r0
Chainguard argo-cd-fips-2.12-repo-server 0 2.12.10-r0
Chainguard argo-cd-fips-2.13 0 2.13.4-r0
Chainguard argo-events 0 1.9.5-r1
Chainguard argo-events-fips 0 1.9.5-r1
Chainguard argo-rollouts 0 1.7.2-r4
Chainguard argo-workflow-cli 0 3.6.3-r1
Chainguard argo-workflow-controller 0 3.6.3-r1
Chainguard argo-workflow-controller-compat 0 3.6.3-r1
Chainguard argo-workflow-executor 0 3.6.3-r1
Chainguard argo-workflow-executor-compat 0 3.6.3-r1
Chainguard argo-workflows 0 3.6.3-r1
Chainguard argo-workflows-fips 0 3.6.2-r4
Chainguard argo-workflows-known-hosts 0 3.6.3-r1
Chainguard argo-workflows-ui 0 3.6.3-r1
Chainguard atlantis 0 0.32.0-r1
Chainguard atlantis-fips 0 0.32.0-r1
Chainguard authservice-fips 0 1.0.4-r0
Chainguard aws-application-networking-k8s 0 1.1.0-r2
Chainguard aws-ebs-csi-driver 0 1.52.1-r0
Chainguard aws-efs-csi-driver 0 2.1.4-r1
Chainguard aws-efs-csi-driver-fips 0 2.1.4-r1
Chainguard aws-flb-cloudwatch 0 1.9.4-r14
Chainguard aws-flb-cloudwatch-compat 0 1.9.4-r14
Chainguard aws-flb-cloudwatch-compat-fips 0 1.9.4-r7
Chainguard aws-flb-cloudwatch-fips 0 1.9.4-r7
Chainguard aws-flb-firehose 0 1.7.2-r14
Chainguard aws-flb-firehose-compat 0 1.7.2-r14
Chainguard aws-flb-firehose-compat-fips 0 1.7.2-r7
Chainguard aws-flb-firehose-fips 0 1.7.2-r7
Chainguard aws-flb-kinesis 0 1.10.2-r15
Chainguard aws-flb-kinesis-fips 0 1.10.2-r8
Chainguard aws-load-balancer-controller 0 2.11.0-r2
Chainguard aws-load-balancer-controller-fips 0 2.12.0-r1
Chainguard aws-network-policy-agent 0 1.1.6-r1
Chainguard aws-network-policy-agent-compat 0 1.1.6-r1
Chainguard aws-network-policy-agent-fips 0 1.1.6-r1
Chainguard aws-privateca-issuer 0 1.4.0-r3
Chainguard aws-privateca-issuer-compat-fips 0 1.4.0-r3
Chainguard aws-privateca-issuer-fips 0 1.4.0-r3
Chainguard aws-signer-notation-plugin 0 1.0.350-r1
Chainguard aws-signer-notation-plugin-fips 0 1.0.350-r1
Chainguard azure-aad-pod-identity-mic 0 1.8.17-r16
Chainguard azuredisk-csi-1.28 0 1.28.11-r6
Chainguard azuredisk-csi-1.29 0 1.29.12-r1
Chainguard azuredisk-csi-1.29-compat 0 1.29.12-r1
Chainguard azuredisk-csi-1.30 0 1.30.7-r1
Chainguard azuredisk-csi-1.31 0 1.31.2-r1
Chainguard azuredisk-csi-fips-1.28 0 1.28.11-r5
Chainguard azuredisk-csi-fips-1.29 0 1.29.12-r1
Chainguard azuredisk-csi-fips-1.30 0 1.30.7-r1
Chainguard azuredisk-csi-fips-1.31 0 1.31.2-r1
Chainguard bank-vaults 0 1.20.4-r23
Chainguard bank-vaults-fips 0 1.20.4-r19
Chainguard bank-vaults-template 0 1.20.4-r23
Chainguard bank-vaults-template-fips 0 1.20.4-r19
Chainguard bazelisk 0 1.25.0-r1
Chainguard bazelisk-default 0 1.25.0-r1
Chainguard beats-7 0 7.17.27-r1
Chainguard beats-8 0 8.17.1-r0
Chainguard beats-fips-7 0 7.17.27-r1
Chainguard beats-fips-8 0 8.17.1-r0
Chainguard bom 0 0.6.0-r15
Chainguard boring-registry 0 0.15.5-r1
Chainguard boring-registry-fips 0 0.15.5-r1
Chainguard buildkitd-fips 0 0.19.0-r0
Chainguard cadvisor 0 0.51.0-r3
Chainguard cadvisor-fips 0 0.50.0-r4
Chainguard calico-3.27 0 3.27.5-r5
Chainguard calico-3.28 0 3.28.2-r7
Chainguard calico-3.29 0 3.29.1-r4
Chainguard calico-apiserver-3.27 0 3.27.5-r5
Chainguard calico-apiserver-3.28 0 3.28.2-r7
Chainguard calico-apiserver-compat-3.27 0 3.27.5-r5
Chainguard calico-apiserver-compat-3.28 0 3.28.2-r7
Chainguard calico-apiserver-compat-fips-3.27 0 3.27.5-r5
Chainguard calico-apiserver-fips-3.27 0 3.27.5-r5
Chainguard calico-apiserver-fips-3.29 0 3.29.1-r5
Chainguard calico-app-policy-3.27 0 3.27.5-r5
Chainguard calico-app-policy-3.28 0 3.28.2-r7
Chainguard calico-app-policy-fips-3.27 0 3.27.5-r5
Chainguard calico-app-policy-fips-3.29 0 3.29.1-r5
Chainguard calico-cni-3.27 0 3.27.5-r5
Chainguard calico-cni-3.28 0 3.28.2-r7
Chainguard calico-cni-compat-3.27 0 3.27.5-r5
Chainguard calico-cni-compat-3.28 0 3.28.2-r7
Chainguard calico-cni-compat-fips-3.27 0 3.27.5-r5
Chainguard calico-cni-compat-fips-3.29 0 3.29.1-r5
Chainguard calico-cni-fips-3.27 0 3.27.5-r5
Chainguard calico-cni-fips-3.29 0 3.29.1-r5
Chainguard calico-felix-3.27 0 3.27.5-r5
Chainguard calico-felix-3.28 0 3.28.2-r7
Chainguard calico-felix-fips-3.27 0 3.27.5-r5
Chainguard calico-felix-fips-3.29 0 3.29.1-r5
Chainguard calico-fips-3.27 0 3.27.5-r5
Chainguard calico-fips-3.28 0 3.28.2-r5
Chainguard calico-fips-3.29 0 3.29.1-r5
Chainguard calico-key-cert-provisioner-3.28 0 3.28.2-r7
Chainguard calico-key-cert-provisioner-fips-3.29 0 3.29.1-r5
Chainguard calico-kube-controllers-3.27 0 3.27.5-r5
Chainguard calico-kube-controllers-3.28 0 3.28.2-r7
Chainguard calico-kube-controllers-fips-3.27 0 3.27.5-r5
Chainguard calico-kube-controllers-fips-3.29 0 3.29.1-r5
Chainguard calico-node-3.27 0 3.27.5-r5
Chainguard calico-node-3.28 0 3.28.2-r7
Chainguard calico-node-fips-3.27 0 3.27.5-r5
Chainguard calico-node-fips-3.29 0 3.29.1-r5
Chainguard calico-pod2daemon-3.27 0 3.27.5-r5
Chainguard calico-pod2daemon-3.28 0 3.28.2-r7
Chainguard calico-pod2daemon-fips-3.27 0 3.27.5-r5
Chainguard calico-pod2daemon-fips-3.29 0 3.29.1-r5
Chainguard calico-pod2daemon-flexvol-compat-3.27 0 3.27.5-r5
Chainguard calico-pod2daemon-flexvol-compat-3.28 0 3.28.2-r7
Chainguard calico-pod2daemon-flexvol-compat-fips-3.27 0 3.27.5-r5
Chainguard calico-typha-client-3.27 0 3.27.5-r5
Chainguard calico-typha-client-3.28 0 3.28.2-r7
Chainguard calico-typha-client-fips-3.27 0 3.27.5-r5
Chainguard calico-typha-client-fips-3.29 0 3.29.1-r5
Chainguard calico-typhad-3.27 0 3.27.5-r5
Chainguard calico-typhad-3.28 0 3.28.2-r7
Chainguard calico-typhad-fips-3.27 0 3.27.5-r5
Chainguard calico-typhad-fips-3.29 0 3.29.1-r5
Chainguard calicoctl-3.27 0 3.27.5-r5
Chainguard calicoctl-3.28 0 3.28.2-r7
Chainguard calicoctl-fips-3.27 0 3.27.5-r5
Chainguard calicoctl-fips-3.29 0 3.29.1-r5
Chainguard capslock 0 0.2.7-r1
Chainguard cass-operator 0 1.23.0-r2
Chainguard cass-operator-compat-fips 0 1.23.0-r2
Chainguard cass-operator-fips 0 1.23.0-r2
Chainguard cass-operator-fips-no-pvc-delete 0 1.23.0-r2
Chainguard cass-operator-fips-no-pvc-delete-compat 0 1.23.0-r2
Chainguard cert-manager-1.12 0 1.12.15-r1
Chainguard cert-manager-1.12-acmesolver 0 1.12.15-r1
Chainguard cert-manager-1.12-cainjector 0 1.12.15-r1
Chainguard cert-manager-1.12-controller 0 1.12.15-r1
Chainguard cert-manager-1.12-webhook 0 1.12.15-r1
Chainguard cert-manager-1.15 0 1.15.5-r1
Chainguard cert-manager-1.15-acmesolver 0 1.15.5-r1
Chainguard cert-manager-1.15-cainjector 0 1.15.5-r1
Chainguard cert-manager-1.15-controller 0 1.15.5-r1
Chainguard cert-manager-1.15-startupapicheck 0 1.15.5-r1
Chainguard cert-manager-1.15-webhook 0 1.15.5-r1
Chainguard cert-manager-1.16 0 1.16.3-r1
Chainguard cert-manager-acmesolver-1.12 0 1.12.15-r1
Chainguard cert-manager-acmesolver-1.12-bitnami-compat 0 1.12.15-r1
Chainguard cert-manager-acmesolver-1.12-iamguarded-compat 0 1.12.15-r1
Chainguard cert-manager-acmesolver-1.15 0 1.15.5-r1
Chainguard cert-manager-acmesolver-1.15-bitnami-compat 0 1.15.5-r1
Chainguard cert-manager-acmesolver-1.15-iamguarded-compat 0 1.15.5-r1
Chainguard cert-manager-acmesolver-fips-1.16 0 1.16.3-r1
Chainguard cert-manager-cainjector-1.12 0 1.12.15-r1
Chainguard cert-manager-cainjector-1.12-bitnami-compat 0 1.12.15-r1
Chainguard cert-manager-cainjector-1.12-iamguarded-compat 0 1.12.15-r1
Chainguard cert-manager-cainjector-1.15 0 1.15.5-r1
Chainguard cert-manager-cainjector-1.15-bitnami-compat 0 1.15.5-r1
Chainguard cert-manager-cainjector-1.15-iamguarded-compat 0 1.15.5-r1
Chainguard cert-manager-cainjector-fips-1.16 0 1.16.3-r1
Chainguard cert-manager-cmctl 0 2.1.1-r4

Related vulnerabilities