Cloudanix VulnDB

CVE-2025-61729

High · 7.5

CVSS

7.5

EPSS

0.5%

Published

Dec 2, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in a widely-used programming language allows an attacker to crash an application by sending it a specially crafted digital certificate, making the service unavailable to legitimate users.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

A vulnerability exists in the Go language's `HostnameError.Error()` function. When constructing an error string for a certificate with numerous hostnames, the function uses an inefficient string concatenation process with quadratic runtime complexity and no limit on the number of hosts included. This allows a malicious actor to trigger excessive CPU and memory consumption by providing a specially crafted certificate, leading to a denial of service (DoS).

Why it matters to the business

An attacker can render services built with vulnerable versions of Go unresponsive or cause them to crash by sending a malicious digital certificate. This can lead to service outages for customers and partners, disrupting business operations, and potentially causing financial or reputational damage. The high CVSS score of 7.5 underscores the significant risk of service unavailability.

How an attack unfolds

An attacker targets a public-facing service, such as a web server with mutual TLS (mTLS) authentication, that is built using a vulnerable version of Go. The attacker crafts a malicious X.509 certificate containing an exceptionally large number of hostnames in fields like the Subject Alternative Name (SAN). They then initiate a TLS handshake with the target service and present this certificate. When the Go application's validation logic fails and calls the `HostnameError.Error()` function to report the mismatch, the function enters a resource-intensive loop to build a massive error string. This exhausts CPU and memory resources, causing the application to hang or crash, effectively denying service to legitimate users.

How to fix it

To remediate this vulnerability, developers must upgrade their Go development environment to a version that includes the patch and recompile their applications. The specific fix was introduced in commit `1296453960bac0fb5675853c40e3747e5237e16e`. Check the official Go release notes for the first stable version that includes this commit and upgrade your toolchain accordingly before rebuilding and deploying your Go services.

How to confirm the fix worked

To validate the fix, confirm that all Go applications have been rebuilt using a patched version of the Go toolchain. You can verify the toolchain version used to build a binary by running `go version -m <path_to_binary>`. Additionally, you can use security scanning tools to check for vulnerable dependencies in your software bill of materials (SBOM). As a direct test, presenting a certificate with many hostnames to a patched application in a non-production environment should not result in excessive resource consumption.

Typical attack path

  1. Attacker identifies a target service built with a vulnerable Go version that processes client-provided certificates.
  2. Attacker generates a malicious X.509 certificate containing an abnormally large number of hostnames.
  3. Attacker initiates a TLS connection to the target service.
  4. During the TLS handshake, the attacker presents the malicious certificate to the server.
  5. The Go application fails to validate the certificate and triggers the vulnerable `HostnameError.Error()` function.
  6. The application's CPU and memory usage spike to 100% as it attempts to construct a large error string, leading to a denial of service.

How to detect it

To detect exploitation, monitor Go applications for sudden and sustained spikes in CPU and memory usage that are not associated with legitimate traffic patterns. Correlate these resource anomalies with logs from network devices or load balancers that show incoming TLS handshakes with abnormally large certificate payloads. Application performance monitoring (APM) tools may reveal that processes are stuck inside the `crypto/x509.HostnameError.Error` function. Application logs may contain extremely long, truncated error messages related to hostname validation, but the DoS condition itself may prevent logs from being written.

What your security team should do

  • Immediately identify all applications built with Go that are exposed to external networks and process client certificates.
  • Prioritize upgrading the Go toolchain on all build servers and developer machines to a patched version.
  • Rebuild and redeploy all identified Go applications, starting with the most critical and publicly-exposed services.
  • If patching cannot be done immediately, consider implementing a temporary mitigation at the network edge (e.g., WAF or reverse proxy) to reject TLS handshakes involving certificates with an unusually large size or an excessive number of SAN entries.

The record

Within HostnameError.Error(), when constructing an error string, there is no limit to the number of hosts that will be printed out. Furthermore, the error string is constructed by repeated string concatenation, leading to quadratic runtime. Therefore, a certificate provided by a malicious actor can result in excessive resource consumption.

Affected packages

Ecosystem Package Introduced Fixed
Go stdlib 0 1.24.11
AlmaLinux:10 go-toolset 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang-bin 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang-docs 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang-misc 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang-race 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang-src 0 1.25.5-1.el10_1.alma.1
AlmaLinux:10 golang-tests 0 1.25.5-1.el10_1.alma.1
AlmaLinux:8 delve 0 1.25.2-1.module_el8.10.0+4074+24330916
AlmaLinux:8 go-toolset 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang-bin 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang-docs 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang-misc 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang-race 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang-src 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 golang-tests 0 1.25.5-1.module_el8.10.0+4107+b32a33ce
AlmaLinux:8 grafana 0 9.2.10-27.el8_10
AlmaLinux:8 grafana-pcp 0 5.1.1-11.el8_10
AlmaLinux:8 grafana-selinux 0 9.2.10-27.el8_10
AlmaLinux:9 go-toolset 0 1.25.5-2.el9_7
AlmaLinux:9 golang 0 1.25.5-2.el9_7
AlmaLinux:9 golang-bin 0 1.25.5-2.el9_7
AlmaLinux:9 golang-docs 0 1.25.5-2.el9_7
AlmaLinux:9 golang-misc 0 1.25.5-2.el9_7
AlmaLinux:9 golang-race 0 1.25.5-2.el9_7
AlmaLinux:9 golang-src 0 1.25.5-2.el9_7
AlmaLinux:9 golang-tests 0 1.25.5-2.el9_7
Bitnami golang 0 1.24.11
Chainguard aactl 0 0.4.12-r39
Chainguard actions-runner-controller 0 0.13.0-r3
Chainguard actions-runner-controller-compat 0 0.13.0-r3
Chainguard actions-runner-controller-fips 0 0.13.0-r4
Chainguard actions-runner-controller-fips-compat 0 0.13.0-r4
Chainguard addon-resizer-fips 0 1.8.23-r12
Chainguard addon-resizer-fips-compat 0 1.8.23-r12
Chainguard age-fips 0 1.2.1-r11
Chainguard amazon-cloudwatch-agent-amazon-cloudwatch-agent-config-wizard-fips 0 1.300062.0-r2
Chainguard amazon-cloudwatch-agent-config-downloader-fips 0 1.300062.0-r2
Chainguard amazon-cloudwatch-agent-config-translator-fips 0 1.300062.0-r2
Chainguard amazon-cloudwatch-agent-fips 0 1.300062.0-r2
Chainguard amazon-cloudwatch-agent-operator-fips 0 3.3.0-r3
Chainguard amazon-cloudwatch-agent-operator-fips-compat 0 3.3.0-r3
Chainguard amazon-cloudwatch-agent-start-amazon-cloudwatch-agent-fips 0 1.300062.0-r2
Chainguard amazon-k8s-cni-fips 0 1.20.5-r1
Chainguard amazon-k8s-cni-init-fips 0 1.20.5-r1
Chainguard amazon-k8s-cni-init-fips-compat 0 1.20.5-r1
Chainguard amazon-ssm-agent-ecs-exec-fips 0 3.3.3270.0-r3
Chainguard amazon-ssm-agent-fips 0 3.3.3270.0-r3
Chainguard amazon-vpc-cni-plugins-fips 0 1.3_git20251112-r2
Chainguard ansible-operator 0 1.42.0-r2
Chainguard ansible-operator-compat 0 1.42.0-r2
Chainguard apache-beam-java-11-sdk 0 2.69.0-r1
Chainguard apache-beam-java-17-sdk 0 2.69.0-r1
Chainguard apache-beam-java-21-sdk 0 2.69.0-r1
Chainguard apache-beam-java-sdk 0 2.69.0-r1
Chainguard apache-exporter 0 1.0.11-r2
Chainguard apisix-ingress-controller 0 1.8.4-r6
Chainguard apisix-ingress-controller-compat 0 1.8.4-r6
Chainguard apisix-ingress-controller-iamguarded-compat 0 1.8.4-r6
Chainguard apm-server-fips-7.17 0 7.17.29-r7
Chainguard apm-server-fips-7.17-compat 0 7.17.29-r7
Chainguard apm-server-fips-8.17 0 8.17.10-r3
Chainguard apm-server-fips-8.17-compat 0 8.17.10-r3
Chainguard apm-server-fips-8.18 0 8.18.8-r2
Chainguard apm-server-fips-8.18-compat 0 8.18.8-r2
Chainguard apm-server-fips-8.19 0 8.19.8-r1
Chainguard apm-server-fips-8.19-compat 0 8.19.8-r1
Chainguard apm-server-fips-9.1 0 9.1.8-r1
Chainguard apm-server-fips-9.1-compat 0 9.1.8-r1
Chainguard apm-server-fips-9.2 0 9.2.2-r1
Chainguard apm-server-fips-9.2-compat 0 9.2.2-r1
Chainguard argo-cd-fips-2.13-repo-server 0 2.13.9-r5
Chainguard argo-cd-fips-3.0 0 3.0.20-r7
Chainguard argo-cd-fips-3.0-compat 0 3.0.20-r7
Chainguard argo-cd-fips-3.0-iamguarded-compat 0 3.0.20-r7
Chainguard argo-cd-fips-3.0-repo-server 0 3.0.20-r7
Chainguard argo-cd-fips-3.1 0 3.1.9-r7
Chainguard argo-cd-fips-3.1-compat 0 3.1.9-r7
Chainguard argo-cd-fips-3.1-iamguarded-compat 0 3.1.9-r7
Chainguard argo-cd-fips-3.1-repo-server 0 3.1.9-r7
Chainguard argo-cd-fips-3.2 0 3.2.1-r1
Chainguard argo-cd-fips-3.2-compat 0 3.2.1-r1
Chainguard argo-cd-fips-3.2-iamguarded-compat 0 3.2.1-r1
Chainguard argo-cd-fips-3.2-repo-server 0 3.2.1-r1
Chainguard argo-rollouts-fips 0 1.8.3-r7
Chainguard argocd-image-updater 0 1.0.1-r2
Chainguard argocd-image-updater-compat 0 1.0.1-r2
Chainguard auditbeat-7 0 7.17.29-r7
Chainguard auditbeat-7-oci-entrypoint 0 7.17.29-r7
Chainguard auditbeat-8.17 0 8.17.10-r4
Chainguard auditbeat-8.17-oci-entrypoint 0 8.17.10-r4
Chainguard authservice-fips 0 1.1.4-r1
Chainguard authservice-fips-compat 0 1.1.4-r1
Chainguard aws-application-networking-k8s-fips 0 1.1.7-r2
Chainguard aws-application-networking-k8s-fips-compat 0 1.1.7-r2
Chainguard aws-ebs-csi-driver-fips-1.49 0 1.49.2-r1
Chainguard aws-ebs-csi-driver-fips-1.50 0 1.50.3-r1
Chainguard aws-ebs-csi-driver-fips-1.51 0 1.51.2-r1
Chainguard aws-ebs-csi-driver-fips-1.52 0 1.52.1-r1
Chainguard aws-ebs-csi-driver-fips-1.53 0 1.53.0-r1
Chainguard aws-efs-csi-driver-fips 0 2.1.15-r1
Chainguard aws-eks-pod-identity-agent-fips 0 0.1.36-r1
Chainguard aws-flb-cloudwatch 0 1.9.4-r21
Chainguard aws-flb-cloudwatch-compat 0 1.9.4-r21
Chainguard aws-flb-cloudwatch-compat-fips 0 1.9.4-r15
Chainguard aws-flb-cloudwatch-fips 0 1.9.4-r15
Chainguard aws-flb-firehose-compat-fips 0 1.7.2-r15
Chainguard aws-flb-firehose-compat-fips 0 1.7.2-r16
Chainguard aws-flb-firehose-fips 0 1.7.2-r15
Chainguard aws-flb-firehose-fips 0 1.7.2-r16
Chainguard aws-iam-authenticator-fips 0 0.7.9-r1
Chainguard aws-load-balancer-controller 0 2.16.0-r2
Chainguard aws-load-balancer-controller-compat 0 2.16.0-r2
Chainguard aws-load-balancer-controller-fips 0 2.16.0-r2
Chainguard aws-network-policy-agent-compat-fips 0 1.2.7-r2
Chainguard aws-network-policy-agent-fips 0 1.2.7-r2
Chainguard aws-node-termination-handler-fips 0 1.25.3-r2
Chainguard aws-node-termination-handler-fips-compat 0 1.25.3-r2
Chainguard aws-nuke 0 3.62.0-r1
Chainguard aws-nuke-fips 0 3.62.0-r1
Chainguard aws-otel-collector-fips 0 0.45.1-r3
Chainguard aws-otel-collector-fips-healthcheck 0 0.45.1-r3
Chainguard aws-otel-collector-healthcheck-fips 0 0.45.1-r3
Chainguard aws-privateca-issuer 0 1.7.1-r1
Chainguard aws-privateca-issuer-compat 0 1.7.1-r1
Chainguard aws-privateca-issuer-compat-fips 0 1.7.1-r1
Chainguard aws-privateca-issuer-fips 0 1.7.1-r1
Chainguard aws-signer-notation-plugin-fips 0 1.0.2292-r4
Chainguard aws-sigv4-proxy-fips 0 1.10-r4
Chainguard aws-sigv4-proxy-fips-compat 0 1.10-r4
Chainguard azcopy-fips 0 10.31.0-r3
Chainguard azure-container-networking 0 1.7.9-r1
Chainguard azure-service-operator-fips 0 2.17.0-r0
Chainguard azure-vnet-cni 0 1.7.9-r1
Chainguard azuredisk-csi-fips-1.28 0 1.28.12-r10
Chainguard azuredisk-csi-fips-1.29 0 1.29.14-r10
Chainguard azuredisk-csi-fips-1.30 0 1.30.12-r8
Chainguard azuredisk-csi-fips-1.31 0 1.31.12-r5
Chainguard azuredisk-csi-fips-1.32 0 1.32.11-r5
Chainguard azuredisk-csi-fips-1.33 0 1.33.7-r1
Chainguard azurefile-csi-1.33 0 1.33.6-r2
Chainguard azurefile-csi-1.33-compat 0 1.33.6-r2
Chainguard azurefile-csi-fips-1.29 0 1.29.12-r9
Chainguard azurefile-csi-fips-1.29-compat 0 1.29.12-r9
Chainguard azurefile-csi-fips-1.30 0 1.30.10-r9
Chainguard azurefile-csi-fips-1.30-compat 0 1.30.10-r9
Chainguard azurefile-csi-fips-1.31 0 1.31.8-r5
Chainguard azurefile-csi-fips-1.31-compat 0 1.31.8-r5
Chainguard azurefile-csi-fips-1.32 0 1.32.8-r2
Chainguard azurefile-csi-fips-1.32-compat 0 1.32.8-r2
Chainguard azurefile-csi-fips-1.33 0 1.33.6-r2
Chainguard azurefile-csi-fips-1.33-compat 0 1.33.6-r2
Chainguard bank-vaults-fips 0 1.20.4-r35
Chainguard bank-vaults-template-fips 0 1.20.4-r35
Chainguard beats-7 0 7.17.29-r7
Chainguard beats-8.17 0 8.17.10-r4
Chainguard blob-csi-fips-1.23 0 1.23.11-r60
Chainguard blob-csi-fips-1.23-compat 0 1.23.11-r60
Chainguard blob-csi-fips-1.24 0 1.24.11-r8
Chainguard blob-csi-fips-1.24-compat 0 1.24.11-r8
Chainguard blob-csi-fips-1.26 0 1.26.7-r6
Chainguard blob-csi-fips-1.26-compat 0 1.26.7-r6
Chainguard blobfuse2-fips 0 2.4.2-r8
Chainguard blobfuse2-fips-health-monitor 0 2.4.2-r8
Chainguard blobfuse2-fips-syslog 0 2.4.2-r8
Chainguard boring-registry 0 0.16.6-r4
Chainguard boring-registry-fips 0 0.16.6-r4
Chainguard buildctl 0 0.26.2-r1
Chainguard buildctl-fips 0 0.26.2-r2
Chainguard buildkitd 0 0.26.2-r1
Chainguard buildkitd-fips 0 0.26.2-r2
Chainguard cass-operator-compat-fips 0 1.28.0-r3
Chainguard cass-operator-fips 0 1.28.0-r3
Chainguard cass-operator-fips-no-pvc-delete 0 1.28.0-r1
Chainguard cass-operator-fips-no-pvc-delete-compat 0 1.28.0-r1
Chainguard ceph-csi-operator-compat-fips 0 0.4.1-r1
Chainguard ceph-csi-operator-fips 0 0.4.1-r1
Chainguard cert-exporter-fips 0 2.17.0-r2
Chainguard cert-manager-acmesolver-fips-1.16 0 1.16.5-r6
Chainguard cert-manager-acmesolver-fips-1.17 0 1.17.4-r5
Chainguard cert-manager-acmesolver-fips-1.18 0 1.18.3-r2
Chainguard cert-manager-acmesolver-fips-1.19 0 1.19.1-r2
Chainguard cert-manager-cainjector-fips-1.16 0 1.16.5-r6
Chainguard cert-manager-cainjector-fips-1.17 0 1.17.4-r5
Chainguard cert-manager-cainjector-fips-1.18 0 1.18.3-r2
Chainguard cert-manager-cainjector-fips-1.19 0 1.19.1-r2
Chainguard cert-manager-controller-fips-1.16 0 1.16.5-r6
Chainguard cert-manager-controller-fips-1.17 0 1.17.4-r5
Chainguard cert-manager-controller-fips-1.18 0 1.18.3-r2
Chainguard cert-manager-controller-fips-1.19 0 1.19.1-r2
Chainguard cert-manager-csi-driver-fips 0 0.11.1-r4
Chainguard cert-manager-fips-1.16 0 1.16.5-r6
Chainguard cert-manager-fips-1.16-acmesolver 0 1.16.5-r6
Chainguard cert-manager-fips-1.16-cainjector 0 1.16.5-r6
Chainguard cert-manager-fips-1.16-controller 0 1.16.5-r6
Chainguard cert-manager-fips-1.16-startupapicheck 0 1.16.5-r6
Chainguard cert-manager-fips-1.16-webhook 0 1.16.5-r6
Chainguard cert-manager-fips-1.17 0 1.17.4-r5

Related vulnerabilities