CVE-2025-61730
Medium · 5.3CVSS
5.3
EPSS
0.3%
Published
Jan 28, 2026
CISA due date
—
Cloudanix analysis
A flaw in how some software establishes secure connections could allow a nearby attacker on the same network to view small pieces of otherwise private information.
- Exploitation
- Adjacent Network
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
The vulnerability exists in the Go standard library's implementation of the TLS 1.3 handshake. If an attacker can send multiple handshake messages within single TLS records that span an encryption level boundary (e.g., from unencrypted to encrypted), the receiving endpoint may process a message before the encryption context is properly updated. This race condition can cause the endpoint to incorrectly process an encrypted message as if it were plaintext, leading to the disclosure of small amounts of sensitive handshake data.
Why it matters to the business
Exploitation could lead to the leakage of minor amounts of sensitive data transmitted during the initial setup of a secure connection. While the direct impact is low, it erodes the confidentiality guarantees of the TLS protocol, potentially violating compliance requirements or exposing metadata about secure sessions. The vulnerability affects a wide range of applications built with vulnerable versions of Go, including popular infrastructure tools like HashiCorp Vault, increasing the potential attack surface across the organization.
How an attack unfolds
A network-local attacker, positioned as a Man-in-the-Middle (MitM) between a client and server, can exploit this flaw. During a TLS 1.3 handshake between two endpoints using vulnerable Go-based applications, the attacker intercepts the traffic. The attacker then crafts and injects specific TLS records containing multiple handshake messages that are deliberately framed to cross an encryption boundary. This manipulation tricks the receiving endpoint into processing a message, such as the Encrypted Extensions, before it has switched to the new encryption keys. As a result, the contents of that message, which should be confidential, are processed incorrectly and may be exposed to the attacker monitoring the session.
How to fix it
The vulnerability is resolved by updating the underlying Go language runtime and rebuilding affected applications. For users of pre-compiled software, upgrade to a version that incorporates the fix. Specifically, update MinimOS packages for `vault`, `vault-oci-entrypoint`, and `vault-doc` to version `1.21.0-r1` or later. For developers building applications with Go, update the Go toolchain to a version including commit `63a1b82d1e68ddd87652467303901593efe0ff11` or a subsequent official release, and then recompile and redeploy all Go-based applications.
How to confirm the fix worked
To validate the fix, verify that all Go-based applications are running versions built with a patched Go compiler. For packaged software like HashiCorp Vault, check the installed version against the fixed versions specified by the vendor (e.g., `vault` version `1.21.0-r1` or newer). For custom-built applications, run `go version` on the build server to confirm the toolchain is patched, and inspect the running binary's build information if available (e.g., using `go version -m <binary>`). Network-level validation is complex and would require a specialized TLS testing tool capable of simulating the specific handshake message injection attack.
Typical attack path
- Attacker gains a Man-in-the-Middle (MitM) position on the network between a client and a server running an application built with a vulnerable Go version.
- The client initiates a TLS 1.3 handshake with the server.
- The attacker intercepts the handshake traffic and injects specially crafted TLS records.
- The malicious records contain multiple handshake messages designed to span an encryption boundary.
- The vulnerable endpoint incorrectly processes a message at the wrong encryption level, before keys are updated.
- The attacker captures the disclosed handshake information from the network traffic.
How to detect it
Detecting exploitation of this vulnerability is difficult as it requires deep inspection and stateful analysis of TLS 1.3 handshake traffic. Anomaly detection on TLS sessions might flag malformed or unusual handshake sequences. Network security monitoring (NSM) tools and Intrusion Detection Systems (IDS) with advanced TLS parsing capabilities may be able to identify the specific injection pattern if a signature is developed. Look for TLS 1.3 handshakes where single records contain multiple distinct handshake messages that cross encryption boundaries. There are no post-exploitation artifacts on the host itself, as the attack is confined to the network layer.
What your security team should do
- Prioritize patching internet-facing systems and critical internal services built with Go, such as HashiCorp Vault, to prevent potential information disclosure.
- Identify all applications within the environment that are built using Go and determine which are using a vulnerable version of the standard library.
- Update affected MinimOS packages (`vault`, `vault-oci-entrypoint`, `vault-doc`) to version `1.21.0-r1` or later.
- For internal development teams, mandate an upgrade of the Go compiler to a patched version and trigger a rebuild and redeployment of all Go applications.
The record
During the TLS 1.3 handshake if multiple messages are sent in records that span encryption level boundaries (for instance the Client Hello and Encrypted Extensions messages), the subsequent messages may be processed before the encryption level changes. This can cause some minor information disclosure if a network-local attacker can inject messages during the handshake.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | stdlib | 0 | 1.24.12 |
| Bitnami | golang | 0 | 1.24.12 |
| Chainguard | aactl | 0 | 0.4.12-r40 |
| Chainguard | actions-runner-controller | 0 | 0.13.1-r1 |
| Chainguard | actions-runner-controller-fips | 0 | 0.13.1-r1 |
| Chainguard | age | 0 | 0 |
| Chainguard | age-fips | 0 | 0 |
| Chainguard | agentbeat | 0 | 9.2.4-r1 |
| Chainguard | agentbeat-fips | 0 | 9.2.4-r1 |
| Chainguard | amass | 0 | 5.0.1-r4 |
| Chainguard | amazon-cloudwatch-agent-amazon-cloudwatch-agent-config-wizard-fips | 0 | 0 |
| Chainguard | amazon-cloudwatch-agent-config-downloader-fips | 0 | 0 |
| Chainguard | amazon-cloudwatch-agent-config-translator-fips | 0 | 0 |
| Chainguard | amazon-cloudwatch-agent-operator | 0 | 3.3.1-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-fips | 0 | 3.3.1-r1 |
| Chainguard | amazon-k8s-cni-fips | 0 | 0 |
| Chainguard | amazon-k8s-cni-init-fips | 0 | 1.21.1-r3 |
| Chainguard | amazon-k8s-cni-init-fips-compat | 0 | 0 |
| Chainguard | amazon-ssm-agent-ecs-exec-fips | 0 | 3.3.3270.0-r4 |
| Chainguard | amazon-ssm-agent-fips | 0 | 3.3.3270.0-r4 |
| Chainguard | amazon-vpc-cni-plugins | 0 | 1.3_git20251112-r4 |
| Chainguard | amazon-vpc-cni-plugins-fips | 0 | 1.3_git20251112-r4 |
| Chainguard | apache-exporter | 0 | 1.0.12-r1 |
| Chainguard | apm-server-7.17 | 0 | 7.17.29-r8 |
| Chainguard | apm-server-8.17 | 0 | 8.17.10-r5 |
| Chainguard | apm-server-8.18 | 0 | 8.18.8-r4 |
| Chainguard | apm-server-8.19 | 0 | 8.19.10-r1 |
| Chainguard | apm-server-9.0 | 0 | 9.0.8-r3 |
| Chainguard | apm-server-9.1 | 0 | 9.1.10-r1 |
| Chainguard | apm-server-fips-7.17 | 0 | 7.17.29-r8 |
| Chainguard | apm-server-fips-8.17 | 0 | 8.17.10-r4 |
| Chainguard | apm-server-fips-8.18 | 0 | 8.18.8-r3 |
| Chainguard | apm-server-fips-8.19 | 0 | 8.19.10-r1 |
| Chainguard | apm-server-fips-9.0 | 0 | 9.0.8-r3 |
| Chainguard | argo-cd-2.14 | 0 | 2.14.21-r5 |
| Chainguard | argo-cd-2.14-compat | 0 | 2.14.21-r5 |
| Chainguard | argo-cd-3.0 | 0 | 3.0.23-r0 |
| Chainguard | argo-cd-3.0-compat | 0 | 3.0.23-r0 |
| Chainguard | argo-cd-fips-2.14 | 0 | 2.14.21-r5 |
| Chainguard | argo-cd-fips-2.14-compat | 0 | 2.14.21-r5 |
| Chainguard | argo-rollouts-fips | 0 | 1.8.3-r8 |
| Chainguard | auditbeat-8.19 | 0 | 8.19.10-r1 |
| Chainguard | auditbeat-9.0 | 0 | 9.0.8-r5 |
| Chainguard | auditbeat-9.1 | 0 | 9.1.10-r1 |
| Chainguard | auditbeat-9.2 | 0 | 9.2.4-r1 |
| Chainguard | auditbeat-fips-7 | 0 | 7.17.29-r9 |
| Chainguard | auditbeat-fips-8.18 | 0 | 8.18.8-r4 |
| Chainguard | auditbeat-fips-8.19 | 0 | 8.19.10-r1 |
| Chainguard | auditbeat-fips-9.0 | 0 | 9.0.8-r4 |
| Chainguard | authservice | 0 | 1.1.5-r1 |
| Chainguard | authservice-fips | 0 | 1.1.5-r1 |
| Chainguard | aws-ebs-csi-driver-fips-1.50 | 0 | 1.50.3-r2 |
| Chainguard | aws-ebs-csi-driver-fips-1.51 | 0 | 1.51.2-r2 |
| Chainguard | aws-ebs-csi-driver-fips-1.52 | 0 | 1.52.1-r2 |
| Chainguard | aws-ebs-csi-driver-fips-1.53 | 0 | 1.53.0-r2 |
| Chainguard | aws-eks-pod-identity-agent | 0 | 0.1.36-r2 |
| Chainguard | aws-eks-pod-identity-agent-fips | 0 | 0.1.36-r2 |
| Chainguard | aws-flb-cloudwatch | 0 | 1.9.4-r23 |
| Chainguard | aws-flb-cloudwatch-fips | 0 | 1.9.4-r17 |
| Chainguard | aws-flb-kinesis | 0 | 1.10.3-r4 |
| Chainguard | aws-flb-kinesis-fips | 0 | 1.10.3-r5 |
| Chainguard | aws-fsx-csi-driver | 0 | 1.8.0-r1 |
| Chainguard | aws-iam-authenticator | 0 | 0.7.10-r1 |
| Chainguard | aws-iam-authenticator-fips | 0 | 0.7.10-r1 |
| Chainguard | aws-network-policy-agent-fips | 0 | 1.3.1-r1 |
| Chainguard | aws-privateca-issuer | 0 | 1.8.0-r1 |
| Chainguard | aws-privateca-issuer-fips | 0 | 1.8.0-r1 |
| Chainguard | aws-signer-notation-plugin | 0 | 1.0.2292-r5 |
| Chainguard | aws-signer-notation-plugin-fips | 0 | 1.0.2292-r5 |
| Chainguard | aws-sigv4-proxy | 0 | 1.11-r1 |
| Chainguard | aws-sigv4-proxy-fips | 0 | 1.11-r1 |
| Chainguard | azcopy | 0 | 10.31.1-r1 |
| Chainguard | azure-aad-pod-identity-mic | 0 | 1.8.17-r32 |
| Chainguard | azure-aad-pod-identity-nmi | 0 | 1.8.17-r32 |
| Chainguard | azure-ipam | 0 | 0.4.0-r8 |
| Chainguard | azure-ipam-dropgz | 0 | 0 |
| Chainguard | azure-service-operator | 0 | 2.17.0-r1 |
| Chainguard | azure-service-operator-fips | 0 | 2.17.0-r1 |
| Chainguard | azure-vnet-cni | 0 | 1.7.12-r1 |
| Chainguard | azure-workload-identity-webhook | 0 | 1.5.1-r6 |
| Chainguard | azuredisk-csi-1.28 | 0 | 1.28.12-r12 |
| Chainguard | azuredisk-csi-1.30 | 0 | 1.30.12-r10 |
| Chainguard | azuredisk-csi-fips-1.29 | 0 | 1.29.14-r11 |
| Chainguard | azuredisk-csi-fips-1.31 | 0 | 1.31.12-r6 |
| Chainguard | azurefile-csi-1.29 | 0 | 1.29.12-r10 |
| Chainguard | azurefile-csi-1.30 | 0 | 1.30.10-r10 |
| Chainguard | azurefile-csi-1.31 | 0 | 1.31.8-r6 |
| Chainguard | azurefile-csi-1.32 | 0 | 1.32.9-r1 |
| Chainguard | azurefile-csi-1.33 | 0 | 1.33.7-r1 |
| Chainguard | azurefile-csi-1.34 | 0 | 1.34.3-r1 |
| Chainguard | azurefile-csi-fips-1.29 | 0 | 1.29.12-r10 |
| Chainguard | azurefile-csi-fips-1.31 | 0 | 1.31.8-r6 |
| Chainguard | azurefile-csi-fips-1.32 | 0 | 1.32.9-r1 |
| Chainguard | azurefile-csi-fips-1.34 | 0 | 1.34.3-r1 |
| Chainguard | bank-vaults-template | 0 | 1.32.1-r1 |
| Chainguard | bento | 0 | 1.14.1-r1 |
| Chainguard | blob-csi-1.23 | 0 | 1.23.11-r63 |
| Chainguard | blob-csi-1.24 | 0 | 1.24.11-r12 |
| Chainguard | blob-csi-fips-1.23 | 0 | 1.23.11-r64 |
| Chainguard | blob-csi-fips-1.24 | 0 | 1.24.11-r12 |
| Chainguard | blob-csi-fips-1.25 | 0 | 1.25.10-r7 |
| Chainguard | blobfuse2 | 0 | 2.4.2-r8 |
| Chainguard | blobfuse2-fips-health-monitor | 0 | 0 |
| Chainguard | bom | 0 | 0.7.1-r4 |
| Chainguard | boring-registry | 0 | 0.16.6-r5 |
| Chainguard | boring-registry-fips | 0 | 0.16.6-r5 |
| Chainguard | boringssl-fips-static-2023042800-tools | 0 | 0 |
| Chainguard | boringssl-fips-static-20240407-tools | 0 | 0 |
| Chainguard | buildtools-buildifier-fips | 0 | 0 |
| Chainguard | buildtools-buildozer-fips | 0 | 0 |
| Chainguard | cadvisor-fips | 0 | 0.56.2-r1 |
| Chainguard | calico-apiserver-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-app-policy-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-app-policy-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calico-cni-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-felix-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-felix-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calico-key-cert-provisioner-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-key-cert-provisioner-fips-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calico-kube-controllers-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-kube-controllers-fips-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calico-node-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-pod2daemon-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-pod2daemon-fips-3.31 | 0 | 0 |
| Chainguard | calico-typha-client-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-typha-client-fips-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calico-typhad-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-whisker-backend-fips-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calicoctl-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calicoctl-3.31 | 0 | 3.31.3-r2 |
| Chainguard | calicoctl-fips-3.31 | 0 | 3.31.3-r2 |
| Chainguard | capslock | 0 | 0 |
| Chainguard | cargobump | 0 | 0 |
| Chainguard | cass-operator | 0 | 1.28.0-r3 |
| Chainguard | cass-operator-fips | 0 | 1.28.0-r4 |
| Chainguard | ceph-csi-operator | 0 | 0.4.1-r3 |
| Chainguard | ceph-csi-operator-fips | 0 | 0.4.1-r2 |
| Chainguard | cephcsi | 0 | 3.16.1-r0 |
| Chainguard | cephcsi-fips | 0 | 3.16.1-r0 |
| Chainguard | cerbos-fips | 0 | 0.51.0-r0 |
| Chainguard | cerbosctl-fips | 0 | 0.51.0-r0 |
| Chainguard | cert-manager-acmesolver-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-acmesolver-fips-1.19 | 0 | 1.19.2-r1 |
| Chainguard | cert-manager-cainjector-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-cainjector-fips-1.19 | 0 | 1.19.2-r1 |
| Chainguard | cert-manager-cmctl | 0 | 2.4.0-r2 |
| Chainguard | cert-manager-cmctl-fips | 0 | 2.4.0-r2 |
| Chainguard | cert-manager-controller-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-controller-fips-1.19 | 0 | 1.19.2-r1 |
| Chainguard | cert-manager-csi-driver-fips | 0 | 0.12.0-r1 |
| Chainguard | cert-manager-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-google-cas-issuer | 0 | 0.10.2-r1 |
| Chainguard | cert-manager-istio-csr | 0 | 0.15.0-r1 |
| Chainguard | cert-manager-istio-csr-fips | 0 | 0.15.0-r1 |
| Chainguard | cert-manager-openshift-routes | 0 | 0.8.4-r1 |
| Chainguard | cert-manager-openshift-routes-fips | 0 | 0.8.4-r1 |
| Chainguard | cert-manager-startupapicheck-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-startupapicheck-fips-1.19 | 0 | 1.19.2-r1 |
| Chainguard | cert-manager-webhook-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-webhook-fips-1.19 | 0 | 1.19.2-r1 |
| Chainguard | cert-manager-webhook-pdns-fips | 0 | 2.5.3-r5 |
| Chainguard | cfssl | 0 | 1.6.5-r26 |
| Chainguard | cfssl-bundle | 0 | 1.6.5-r26 |
| Chainguard | chaos-mesh-fips | 0 | 2.8.1-r1 |
| Chainguard | chart-testing | 0 | 3.14.0-r3 |
| Chainguard | chart-testing-fips | 0 | 3.14.0-r3 |
| Chainguard | chisel | 0 | 1.11.3-r4 |
| Chainguard | chisel-fips | 0 | 1.11.3-r4 |
| Chainguard | cilium-certgen-0.1 | 0 | 0.1.20-r3 |
| Chainguard | cilium-cli | 0 | 0.19.0-r1 |
| Chainguard | cilium-envoy-1.15 | 0 | 1.15.19-r7 |
| Chainguard | cilium-envoy-1.16 | 0 | 1.16.19-r1 |
| Chainguard | cilium-envoy-fips-1.15 | 0 | 1.15.19-r8 |
| Chainguard | cilium-envoy-fips-1.16 | 0 | 1.16.19-r1 |
| Chainguard | cis-operator-1.2 | 0 | 1.2.7-r7 |
| Chainguard | cis-operator-1.3 | 0 | 1.3.10-r2 |
| Chainguard | clickhouse-operator-fips-metrics-exporter | 0 | 0.25.6-r1 |
| Chainguard | clickhouse-operator-metrics-exporter | 0 | 0.25.6-r1 |
| Chainguard | cloud-provider-aws-1.28-cloud-controller-manager | 0 | 1.28.11-r42 |
| Chainguard | cloud-provider-aws-1.29-ecr-credential-provider | 0 | 1.29.10-r3 |
| Chainguard | cloud-provider-aws-1.31-cloud-controller-manager | 0 | 1.31.9-r2 |
| Chainguard | cloud-provider-aws-1.32-cloud-controller-manager | 0 | 1.32.5-r3 |
| Chainguard | cloud-provider-aws-1.32-ecr-credential-provider | 0 | 1.32.5-r3 |
| Chainguard | cloud-provider-aws-1.33-cloud-controller-manager | 0 | 1.33.2-r4 |
| Chainguard | cloud-provider-aws-1.33-ecr-credential-provider | 0 | 1.33.2-r4 |
| Chainguard | cloud-provider-aws-1.34-cloud-controller-manager | 0 | 1.34.1-r4 |
| Chainguard | cloud-provider-aws-fips-1.28-ecr-credential-provider | 0 | 1.28.11-r13 |
| Chainguard | cloud-provider-aws-fips-1.29-cloud-controller-manager | 0 | 1.29.10-r3 |
| Chainguard | cloud-provider-aws-fips-1.29-ecr-credential-provider | 0 | 1.29.10-r3 |
| Chainguard | cloud-provider-aws-fips-1.31-cloud-controller-manager | 0 | 1.31.9-r3 |
| Chainguard | cloud-provider-aws-fips-1.31-ecr-credential-provider | 0 | 1.31.9-r3 |
| Chainguard | cloud-provider-aws-fips-1.32-cloud-controller-manager | 0 | 1.32.5-r3 |
| Chainguard | cloud-provider-aws-fips-1.32-ecr-credential-provider | 0 | 1.32.5-r3 |
| Chainguard | cloud-provider-aws-fips-1.33-cloud-controller-manager | 0 | 1.33.2-r3 |
| Chainguard | cloud-provider-aws-fips-1.33-ecr-credential-provider | 0 | 1.33.2-r3 |
| Chainguard | cloud-provider-aws-fips-1.34-cloud-controller-manager | 0 | 1.34.1-r4 |
| Chainguard | cloud-provider-aws-fips-1.34-ecr-credential-provider | 0 | 1.34.1-r4 |
| Chainguard | cloud-provider-azure-cloud-controller-manager-1.31 | 0 | 1.31.12-r3 |
| Chainguard | cloud-provider-azure-cloud-controller-manager-1.32 | 0 | 1.32.11-r2 |
| Chainguard | cloud-provider-azure-cloud-controller-manager-1.33 | 0 | 1.33.6-r2 |
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-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
- CVE-2025-61725 The ParseAddress function constructs domain-literal address components through repeated… Also affects stdlib