CVE-2025-4673
Medium · 6.8CVSS
6.8
EPSS
0.7%
Published
Jun 11, 2025
CISA due date
—
Cloudanix analysis
A flaw in some Java versions could cause applications to accidentally send network proxy credentials to an attacker's server, potentially allowing unauthorized network access.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A flaw in the Java HTTP client implementation causes it to incorrectly persist the 'Proxy-Authorization' and 'Proxy-Authenticate' headers when following a cross-origin redirect. This means that if an application connects to a server through an authenticated proxy and is redirected to a different origin, the proxy credentials will be leaked to the new destination server.
Why it matters to the business
Exploitation of this vulnerability can lead to the theft of proxy credentials. These stolen credentials could be used by an attacker to gain unauthorized access to your network, bypass security controls, exfiltrate data, or pivot to other internal systems, potentially resulting in a significant data breach and operational disruption.
How an attack unfolds
An attacker would first need to entice a vulnerable Java application, which is configured to use an authenticated proxy, to make a request to a server under their control. This could be achieved through various means, such as compromising a legitimate website the application interacts with. When the application connects, the attacker's server responds with an HTTP redirect (e.g., 301 or 302) to a different domain, also controlled by the attacker. The vulnerable Java client follows this redirect but fails to strip the 'Proxy-Authorization' header, sending the sensitive proxy credentials directly to the attacker's second server, where they can be captured and abused.
How to fix it
To remediate this vulnerability, upgrade affected OpenJDK components to a patched version. For users of the specified Chainguard packages, upgrade to version 0.48.0-r2 or later. For other distributions, consult your vendor's security advisories for the appropriate patch for CVE-2025-4673. If immediate patching is not feasible, consider implementing strict egress filtering rules on the proxy to limit the domains that applications are allowed to connect to, reducing the risk of redirection to a malicious server.
How to confirm the fix worked
To confirm the vulnerability is patched, verify that the installed OpenJDK package version is at or above the fixed version specified by your vendor (e.g., `openjdk-21-openj9` version `0.48.0-r2`). To identify potentially exposed systems, inventory all Java applications that use the native HTTP client (`java.net.HttpURLConnection`) and are configured to use a proxy with authentication.
Typical attack path
- An attacker sets up a malicious web server or compromises a legitimate one that a target application communicates with.
- The attacker induces a vulnerable Java application to send an HTTP request to the server.
- The application sends the request through its configured authenticated proxy, including the 'Proxy-Authorization' header.
- The attacker's server responds with an HTTP redirect to a different, attacker-controlled origin.
- The vulnerable Java client follows the redirect, erroneously forwarding the 'Proxy-Authorization' header containing credentials to the new origin.
- The attacker's server at the new origin receives the request and logs the proxy credentials, completing the theft.
How to detect it
To detect potential exploitation, security teams should analyze web server and proxy logs. On web servers, look for any incoming requests that contain a 'Proxy-Authorization' header; this header should only be sent to proxies, so its presence in a request to an origin server is a strong indicator of compromise. In proxy logs, search for patterns where a client is redirected from an expected domain to an unrelated or suspicious external domain. Correlating these redirects with the User-Agent string for Java can help pinpoint vulnerable clients.
- HTTP access log entries on origin web servers containing the string 'Proxy-Authorization:'
What your security team should do
- Identify all systems running vulnerable versions of OpenJDK, prioritizing those that use an authenticated proxy for outbound connections.
- Apply the security patches provided by your Java vendor immediately, upgrading to a fixed version.
- As a precautionary measure, rotate credentials for all proxy accounts used by potentially vulnerable Java applications.
- Review proxy and web server logs for evidence of past exploitation, such as requests to origin servers containing a 'Proxy-Authorization' header.
The record
Proxy-Authorization and Proxy-Authenticate headers persisted on cross-origin redirects potentially leaking sensitive information.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | stdlib | 0 | 1.23.10 |
| AlmaLinux:10 | go-toolset | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-bin | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-docs | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-misc | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-race | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-src | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-tests | 0 | 1.24.4-1.el10_0.alma.1 |
| AlmaLinux:10 | opentelemetry-collector | 0 | 0.127.0-3.el10_0 |
| AlmaLinux:8 | delve | 0 | 1.24.1-1.module_el8.10.0+3977+66935a26 |
| AlmaLinux:8 | go-toolset | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:8 | golang | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:8 | golang-bin | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:8 | golang-docs | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:8 | golang-misc | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:8 | golang-src | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:8 | golang-tests | 0 | 1.24.4-1.module_el8.10.0+4027+41c6fed2 |
| AlmaLinux:9 | go-toolset | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang-bin | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang-docs | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang-misc | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang-race | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang-src | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | golang-tests | 0 | 1.24.4-1.el9_6 |
| AlmaLinux:9 | opentelemetry-collector | 0 | 0.127.0-2.el9_6 |
| Bitnami | golang | 0 | 1.23.10 |
| Bitnami | golang | 0 | 1.24.0 |
| Chainguard | addon-resizer | 0 | 1.8.23-r6 |
| Chainguard | addon-resizer-compat | 0 | 1.8.23-r6 |
| Chainguard | addon-resizer-fips | 0 | 1.8.23-r6 |
| Chainguard | addon-resizer-fips-compat | 0 | 1.8.23-r6 |
| Chainguard | age | 0 | 1.2.1-r5 |
| Chainguard | age-fips | 0 | 1.2.1-r5 |
| Chainguard | agentbeat | 0 | 9.0.2-r1 |
| Chainguard | agentbeat-fips | 0 | 9.0.2-r1 |
| Chainguard | amass | 0 | 4.2.0-r24 |
| Chainguard | amazon-cloudwatch-agent | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-all | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-amazon-cloudwatch-agent-config-wizard | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-amazon-cloudwatch-agent-config-wizard-fips | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-compat | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-config-downloader | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-config-downloader-fips | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-config-translator | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-config-translator-fips | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-fips | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-fips | 0 | 3.0.1-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-fips-compat | 0 | 3.0.1-r1 |
| Chainguard | amazon-cloudwatch-agent-start-amazon-cloudwatch-agent | 0 | 1.300056.1-r1 |
| Chainguard | amazon-cloudwatch-agent-start-amazon-cloudwatch-agent-fips | 0 | 1.300056.1-r1 |
| Chainguard | amazon-k8s-cni | 0 | 1.19.5-r1 |
| Chainguard | amazon-k8s-cni-compat | 0 | 1.19.5-r1 |
| Chainguard | amazon-k8s-cni-init | 0 | 1.19.5-r1 |
| Chainguard | amazon-k8s-cni-init-compat | 0 | 1.19.5-r1 |
| Chainguard | amazon-ssm-agent | 0 | 3.3.2656.0-r1 |
| Chainguard | amazon-ssm-agent-ecs-exec | 0 | 3.3.2656.0-r1 |
| Chainguard | amazon-ssm-agent-ecs-exec-fips | 0 | 3.3.2656.0-r1 |
| Chainguard | amazon-ssm-agent-fips | 0 | 3.3.2656.0-r1 |
| Chainguard | apache-beam-java-11-sdk | 0 | 0 |
| Chainguard | apache-beam-java-17-sdk | 0 | 0 |
| Chainguard | apache-beam-java-21-sdk | 0 | 0 |
| Chainguard | apache-beam-java-sdk | 0 | 0 |
| Chainguard | apko | 0 | 0.27.9-r1 |
| Chainguard | apko-fips | 0 | 0.27.9-r1 |
| Chainguard | apm-server | 0 | 9.0.2-r1 |
| Chainguard | apm-server-compat | 0 | 9.0.2-r1 |
| Chainguard | apm-server-fips | 0 | 8.17.5-r1 |
| Chainguard | auditbeat-7 | 0 | 7.17.28-r14 |
| Chainguard | auditbeat-7-oci-entrypoint | 0 | 7.17.28-r14 |
| Chainguard | auditbeat-8 | 0 | 8.18.2-r1 |
| Chainguard | auditbeat-8-oci-entrypoint | 0 | 8.18.2-r1 |
| Chainguard | auditbeat-9 | 0 | 9.0.2-r1 |
| Chainguard | auditbeat-9-oci-entrypoint | 0 | 9.0.2-r1 |
| Chainguard | auditbeat-fips-7 | 0 | 7.17.28-r14 |
| Chainguard | auditbeat-fips-8 | 0 | 8.18.2-r2 |
| Chainguard | auditbeat-fips-9 | 0 | 9.0.2-r2 |
| Chainguard | authservice | 0 | 1.0.4-r8 |
| Chainguard | authservice-compat | 0 | 1.0.4-r8 |
| Chainguard | authservice-fips | 0 | 1.0.4-r8 |
| Chainguard | authservice-fips-compat | 0 | 1.0.4-r8 |
| Chainguard | aws-application-networking-k8s | 0 | 1.1.2-r0 |
| Chainguard | aws-application-networking-k8s-compat | 0 | 1.1.2-r0 |
| Chainguard | aws-application-networking-k8s-fips | 0 | 1.1.2-r15 |
| Chainguard | aws-application-networking-k8s-fips-compat | 0 | 1.1.2-r15 |
| Chainguard | aws-ebs-csi-driver | 0 | 1.44.0-r1 |
| Chainguard | aws-ebs-csi-driver-fips | 0 | 1.44.0-r1 |
| Chainguard | aws-efs-csi-driver | 0 | 2.1.8-r3 |
| Chainguard | aws-efs-csi-driver-fips | 0 | 2.1.8-r2 |
| Chainguard | aws-eks-pod-identity-agent | 0 | 0.1.30-r1 |
| Chainguard | aws-eks-pod-identity-agent-compat | 0 | 0.1.30-r1 |
| Chainguard | aws-eks-pod-identity-agent-fips | 0 | 0.1.30-r1 |
| Chainguard | aws-flb-cloudwatch | 0 | 1.9.4-r17 |
| Chainguard | aws-flb-cloudwatch-compat | 0 | 1.9.4-r17 |
| Chainguard | aws-flb-cloudwatch-compat-fips | 0 | 1.9.4-r11 |
| Chainguard | aws-flb-cloudwatch-fips | 0 | 1.9.4-r11 |
| Chainguard | aws-flb-firehose | 0 | 1.7.2-r17 |
| Chainguard | aws-flb-firehose-compat | 0 | 1.7.2-r17 |
| Chainguard | aws-flb-firehose-compat-fips | 0 | 1.7.2-r11 |
| Chainguard | aws-flb-firehose-fips | 0 | 1.7.2-r11 |
| Chainguard | aws-flb-kinesis | 0 | 1.10.2-r18 |
| Chainguard | aws-flb-kinesis-compat | 0 | 1.10.2-r18 |
| Chainguard | aws-flb-kinesis-compat-fips | 0 | 1.10.2-r12 |
| Chainguard | aws-flb-kinesis-fips | 0 | 1.10.2-r12 |
| Chainguard | aws-iam-authenticator | 0 | 0.7.2-r1 |
| Chainguard | aws-load-balancer-controller | 0 | 2.13.2-r2 |
| Chainguard | aws-load-balancer-controller-compat | 0 | 2.13.2-r2 |
| Chainguard | aws-load-balancer-controller-fips | 0 | 2.13.2-r2 |
| Chainguard | aws-network-policy-agent-compat-fips | 0 | 1.2.1-r2 |
| Chainguard | aws-network-policy-agent-fips | 0 | 1.2.1-r2 |
| Chainguard | aws-privateca-issuer | 0 | 1.6.0-r1 |
| Chainguard | aws-privateca-issuer-compat | 0 | 1.6.0-r1 |
| Chainguard | aws-privateca-issuer-compat-fips | 0 | 1.6.0-r1 |
| Chainguard | aws-privateca-issuer-fips | 0 | 1.6.0-r1 |
| Chainguard | azcopy | 0 | 10.29.1-r1 |
| Chainguard | azcopy-fips | 0 | 10.29.1-r1 |
| Chainguard | azure-aad-pod-identity-mic | 0 | 1.8.17-r24 |
| Chainguard | azure-aad-pod-identity-nmi | 0 | 1.8.17-r24 |
| Chainguard | azure-container-networking | 0 | 1.6.25-r2 |
| Chainguard | azure-service-operator | 0 | 2.13.0-r3 |
| Chainguard | azure-service-operator-compat | 0 | 2.13.0-r3 |
| Chainguard | azure-service-operator-fips | 0 | 2.13.0-r2 |
| Chainguard | azure-vnet-cni | 0 | 1.6.25-r2 |
| Chainguard | azure-workload-identity-webhook | 0 | 1.5.1-r0 |
| Chainguard | azure-workload-identity-webhook-compat | 0 | 1.5.1-r0 |
| Chainguard | azuredisk-csi-1.28 | 0 | 1.28.12-r3 |
| Chainguard | azuredisk-csi-1.28-compat | 0 | 1.28.12-r3 |
| Chainguard | azuredisk-csi-1.29 | 0 | 1.29.14-r3 |
| Chainguard | azuredisk-csi-1.29-compat | 0 | 1.29.14-r3 |
| Chainguard | azuredisk-csi-1.30 | 0 | 1.30.12-r1 |
| Chainguard | azuredisk-csi-1.30-compat | 0 | 1.30.12-r1 |
| Chainguard | azuredisk-csi-fips-1.28 | 0 | 1.28.12-r3 |
| Chainguard | azuredisk-csi-fips-1.29 | 0 | 1.29.14-r3 |
| Chainguard | azuredisk-csi-fips-1.30 | 0 | 1.30.12-r1 |
| Chainguard | azuredisk-csi-fips-1.32 | 0 | 1.32.7-r1 |
| Chainguard | azuredisk-csi-fips-1.33 | 0 | 1.33.1-r1 |
| Chainguard | bank-vaults | 0 | 1.20.4-r31 |
| Chainguard | bank-vaults-fips | 0 | 1.20.4-r28 |
| Chainguard | bank-vaults-template | 0 | 1.20.4-r31 |
| Chainguard | bank-vaults-template-fips | 0 | 1.20.4-r28 |
| Chainguard | bazelisk | 0 | 1.26.0-r1 |
| Chainguard | bazelisk-default | 0 | 1.26.0-r1 |
| Chainguard | beats-7 | 0 | 7.17.28-r14 |
| Chainguard | beats-8 | 0 | 8.18.2-r1 |
| Chainguard | beats-9 | 0 | 9.0.2-r1 |
| Chainguard | beats-fips-7 | 0 | 7.17.28-r14 |
| Chainguard | beats-fips-8 | 0 | 8.18.2-r2 |
| Chainguard | beats-fips-9 | 0 | 9.0.2-r2 |
| Chainguard | blob-csi-1.23 | 0 | 1.23.11-r3 |
| Chainguard | blob-csi-1.23-compat | 0 | 1.23.11-r3 |
| Chainguard | blob-csi-1.24 | 0 | 1.24.10-r1 |
| Chainguard | blob-csi-1.24-compat | 0 | 1.24.10-r1 |
| Chainguard | blob-csi-1.26 | 0 | 1.26.5-r1 |
| Chainguard | blob-csi-1.26-compat | 0 | 1.26.5-r1 |
| Chainguard | blob-csi-fips-1.23 | 0 | 1.23.11-r3 |
| Chainguard | blob-csi-fips-1.23-compat | 0 | 1.23.11-r3 |
| Chainguard | blob-csi-fips-1.24 | 0 | 1.24.10-r1 |
| Chainguard | blob-csi-fips-1.24-compat | 0 | 1.24.10-r1 |
| Chainguard | blob-csi-fips-1.25 | 0 | 1.25.8-r1 |
| Chainguard | blob-csi-fips-1.25-compat | 0 | 1.25.8-r1 |
| Chainguard | blob-csi-fips-1.26 | 0 | 1.26.5-r1 |
| Chainguard | blob-csi-fips-1.26-compat | 0 | 1.26.5-r1 |
| Chainguard | blobfuse2 | 0 | 2.4.2-r2 |
| Chainguard | blobfuse2-fips | 0 | 2.4.2-r1 |
| Chainguard | blobfuse2-fips-health-monitor | 0 | 2.4.2-r1 |
| Chainguard | blobfuse2-fips-syslog | 0 | 2.4.2-r1 |
| Chainguard | blobfuse2-health-monitor | 0 | 2.4.2-r2 |
| Chainguard | blobfuse2-syslog | 0 | 2.4.2-r2 |
| Chainguard | bom | 0 | 0.6.0-r21 |
| Chainguard | boring-registry | 0 | 0.16.4-r1 |
| Chainguard | boring-registry-fips | 0 | 0.16.4-r1 |
| Chainguard | buf | 0 | 1.54.0-r1 |
| Chainguard | buildctl | 0 | 0.22.0-r1 |
| Chainguard | buildctl-fips | 0 | 0.22.0-r1 |
| Chainguard | buildkitd | 0 | 0.22.0-r1 |
| Chainguard | buildkitd-fips | 0 | 0.22.0-r1 |
| Chainguard | cadvisor-fips | 0 | 0.53.0-r1 |
| Chainguard | calico-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-apiserver-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-apiserver-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-apiserver-compat-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-apiserver-compat-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-app-policy-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-app-policy-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-cni-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-cni-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-cni-compat-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-cni-compat-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-felix-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-felix-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-goldmane-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-key-cert-provisioner-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-key-cert-provisioner-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-kube-controllers-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-kube-controllers-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-node-3.29 | 0 | 3.29.4-r1 |
| Chainguard | calico-node-3.30 | 0 | 3.30.1-r1 |
| Chainguard | calico-pod2daemon-3.29 | 0 | 3.29.4-r1 |
Related vulnerabilities
- CVE-2025-68121 During session resumption in crypto/tls, if the underlying Config has its ClientCAs or… Also affects stdlib
- CVE-2025-22873 It was possible to improperly access the parent directory of an os.Root by opening a… Also affects stdlib
- GO-2026-4403 Improper access to parent directory of root in os Also affects stdlib
- CVE-2025-61726 The net/url package does not set a limit on the number of query parameters in a query. Also affects stdlib
- CVE-2025-61728 archive/zip uses a super-linear file name indexing algorithm that is invoked the first… Also affects stdlib
- CVE-2025-61730 During the TLS 1.3 handshake if multiple messages are sent in records that span… Also affects stdlib
- CVE-2025-61727 An excluded subdomain constraint in a certificate chain does not restrict the usage of… Also affects stdlib
- CVE-2025-61729 Within HostnameError.Error(), when constructing an error string, there is no limit to the… Also affects stdlib