CVE-2025-61728
Medium · 6.5CVSS
6.5
EPSS
0.7%
Published
Jan 28, 2026
CISA due date
—
Cloudanix analysis
A flaw in how software built with the Go programming language handles ZIP files could allow an attacker to crash an application by sending it a specially crafted file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The `archive/zip` library in Go is vulnerable to a denial of service. It uses an inefficient, super-linear algorithm for indexing filenames within a ZIP archive. When an application built with a vulnerable Go version attempts to open a file from a maliciously crafted ZIP archive containing a large number of files, this algorithm is triggered, leading to excessive CPU consumption and causing the application to become unresponsive or crash.
Why it matters to the business
Applications that process ZIP files, such as those handling user uploads or data imports, can be rendered unavailable by an attacker. A successful attack would cause service downtime, disrupting business operations, impacting user experience, and potentially leading to financial loss if the service is critical. Since the attack only requires sending a malicious file, any public-facing service accepting ZIP archives is at risk.
How an attack unfolds
An attacker crafts a ZIP archive containing a very large number of files to specifically target the inefficient indexing algorithm in Go's `archive/zip` library. The attacker then submits this file to a target service that is known to be built with a vulnerable version of Go and processes ZIP files. When the application receives the archive and attempts its first file operation (e.g., reading a file from it), the vulnerable code path is executed. This triggers a computationally expensive process that consumes all available CPU resources, effectively hanging the application and causing a denial of service.
How to fix it
To remediate this vulnerability, developers must recompile their applications using a patched version of the Go toolchain. The vulnerability was fixed in commit `63a1b82d1e68ddd87652467303901593efe0ff11`. Upgrade to a Go version that includes this fix and rebuild all affected Go binaries. As a temporary mitigation, if patching is not immediately possible, consider implementing a pre-processing check to limit the number of files allowed within a single ZIP archive before it is passed to the Go application.
How to confirm the fix worked
To validate the fix, ensure that all relevant Go applications have been rebuilt with a patched Go version. You can verify the Go version used to build a binary by running `go version -m <path_to_binary>`. To test for continued exposure, you can create a test ZIP file with a large number of files (e.g., 100,000) and monitor the CPU usage of the application as it processes the file. A patched application should handle the file without significant, sustained CPU spikes, while a vulnerable one will likely become unresponsive.
Typical attack path
- The attacker creates a malicious ZIP archive with a large number of files.
- The attacker identifies a web service or application built with a vulnerable version of Go that accepts ZIP file uploads.
- The attacker sends the malicious ZIP file to the target application, for example, through a file upload form or an API endpoint.
- The Go application begins processing the archive using the vulnerable `archive/zip` library.
- The inefficient indexing algorithm is triggered, causing CPU usage to spike to 100%, making the application unresponsive and unavailable to legitimate users.
How to detect it
Exploitation of this vulnerability manifests as a denial-of-service condition. Monitor application performance metrics for sustained high CPU usage immediately following the processing of a ZIP file. Check application logs for entries indicating the receipt or processing of a ZIP file just before a crash, hang, or period of unresponsiveness. An alert from an Application Performance Monitoring (APM) tool for high CPU on a service that handles file uploads could indicate an attack attempt.
What your security team should do
- Identify all Go applications in your environment that process ZIP files from untrusted sources and prioritize them for patching.
- Update the Go toolchain to a version containing the fix and recompile all identified applications.
- If immediate recompilation is not feasible, deploy an interim mitigation, such as an upstream service (e.g., API gateway, web application firewall) that inspects and rejects ZIP archives containing an abnormally high number of files.
- Use Software Composition Analysis (SCA) tools to scan for and inventory all Go applications and their build versions to ensure comprehensive remediation.
The record
archive/zip uses a super-linear file name indexing algorithm that is invoked the first time a file in an archive is opened. This can lead to a denial of service when consuming a maliciously constructed ZIP archive.
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 |
| Chainguard | actions-runner-controller-fips | 0 | 0 |
| 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 | 0 |
| 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 | 0 |
| Chainguard | amazon-cloudwatch-agent-operator-fips | 0 | 0 |
| Chainguard | amazon-k8s-cni-fips | 0 | 0 |
| Chainguard | amazon-k8s-cni-init-fips | 0 | 0 |
| Chainguard | amazon-k8s-cni-init-fips-compat | 0 | 0 |
| Chainguard | amazon-ssm-agent-ecs-exec-fips | 0 | 0 |
| Chainguard | amazon-ssm-agent-fips | 0 | 0 |
| Chainguard | amazon-vpc-cni-plugins | 0 | 0 |
| Chainguard | amazon-vpc-cni-plugins-fips | 0 | 0 |
| Chainguard | apache-exporter | 0 | 0 |
| Chainguard | apm-server-7.17 | 0 | 7.17.29-r8 |
| Chainguard | apm-server-8.17 | 0 | 0 |
| Chainguard | apm-server-8.18 | 0 | 0 |
| Chainguard | apm-server-8.19 | 0 | 0 |
| Chainguard | apm-server-9.0 | 0 | 0 |
| Chainguard | apm-server-9.1 | 0 | 0 |
| Chainguard | apm-server-fips-7.17 | 0 | 7.17.29-r8 |
| Chainguard | apm-server-fips-8.17 | 0 | 0 |
| Chainguard | apm-server-fips-8.18 | 0 | 0 |
| Chainguard | apm-server-fips-8.19 | 0 | 0 |
| Chainguard | apm-server-fips-9.0 | 0 | 0 |
| 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 | 0 |
| Chainguard | authservice-fips | 0 | 0 |
| Chainguard | aws-ebs-csi-driver-fips-1.50 | 0 | 0 |
| Chainguard | aws-ebs-csi-driver-fips-1.51 | 0 | 0 |
| Chainguard | aws-ebs-csi-driver-fips-1.52 | 0 | 0 |
| Chainguard | aws-ebs-csi-driver-fips-1.53 | 0 | 0 |
| Chainguard | aws-eks-pod-identity-agent | 0 | 0 |
| Chainguard | aws-eks-pod-identity-agent-fips | 0 | 0 |
| 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 | 0 |
| Chainguard | aws-iam-authenticator | 0 | 0 |
| Chainguard | aws-iam-authenticator-fips | 0 | 0 |
| Chainguard | aws-network-policy-agent-fips | 0 | 0 |
| Chainguard | aws-privateca-issuer | 0 | 0 |
| Chainguard | aws-privateca-issuer-fips | 0 | 0 |
| Chainguard | aws-signer-notation-plugin | 0 | 0 |
| Chainguard | aws-signer-notation-plugin-fips | 0 | 0 |
| Chainguard | aws-sigv4-proxy | 0 | 0 |
| Chainguard | aws-sigv4-proxy-fips | 0 | 0 |
| Chainguard | azcopy | 0 | 0 |
| 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 |
| Chainguard | azure-ipam-dropgz | 0 | 0 |
| Chainguard | azure-service-operator | 0 | 0 |
| Chainguard | azure-service-operator-fips | 0 | 0 |
| Chainguard | azure-vnet-cni | 0 | 0 |
| Chainguard | azure-workload-identity-webhook | 0 | 0 |
| Chainguard | azuredisk-csi-1.28 | 0 | 0 |
| Chainguard | azuredisk-csi-1.30 | 0 | 0 |
| Chainguard | azuredisk-csi-fips-1.29 | 0 | 0 |
| Chainguard | azuredisk-csi-fips-1.31 | 0 | 0 |
| Chainguard | azurefile-csi-1.29 | 0 | 0 |
| Chainguard | azurefile-csi-1.30 | 0 | 0 |
| Chainguard | azurefile-csi-1.31 | 0 | 0 |
| Chainguard | azurefile-csi-1.32 | 0 | 0 |
| Chainguard | azurefile-csi-1.33 | 0 | 0 |
| Chainguard | azurefile-csi-1.34 | 0 | 0 |
| Chainguard | azurefile-csi-fips-1.29 | 0 | 0 |
| Chainguard | azurefile-csi-fips-1.31 | 0 | 0 |
| Chainguard | azurefile-csi-fips-1.32 | 0 | 0 |
| Chainguard | azurefile-csi-fips-1.34 | 0 | 0 |
| Chainguard | bank-vaults-template | 0 | 0 |
| Chainguard | bento | 0 | 1.14.1-r1 |
| Chainguard | blob-csi-1.23 | 0 | 0 |
| Chainguard | blob-csi-1.24 | 0 | 0 |
| Chainguard | blob-csi-fips-1.23 | 0 | 0 |
| Chainguard | blob-csi-fips-1.24 | 0 | 0 |
| Chainguard | blob-csi-fips-1.25 | 0 | 0 |
| Chainguard | blobfuse2 | 0 | 0 |
| Chainguard | blobfuse2-fips-health-monitor | 0 | 0 |
| Chainguard | bom | 0 | 0.7.1-r4 |
| Chainguard | boring-registry | 0 | 0 |
| Chainguard | boring-registry-fips | 0 | 0 |
| 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 |
| 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 | 0 |
| 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 | 0 |
| Chainguard | calico-key-cert-provisioner-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-key-cert-provisioner-fips-3.31 | 0 | 0 |
| Chainguard | calico-kube-controllers-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-kube-controllers-fips-3.31 | 0 | 0 |
| 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 | 0 |
| Chainguard | calico-typhad-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calico-whisker-backend-fips-3.31 | 0 | 0 |
| Chainguard | calicoctl-3.29 | 0 | 3.29.7-r5 |
| Chainguard | calicoctl-3.31 | 0 | 0 |
| Chainguard | calicoctl-fips-3.31 | 0 | 0 |
| Chainguard | capslock | 0 | 0 |
| Chainguard | cargobump | 0 | 0 |
| Chainguard | cass-operator | 0 | 0 |
| Chainguard | cass-operator-fips | 0 | 0 |
| Chainguard | ceph-csi-operator | 0 | 0 |
| Chainguard | ceph-csi-operator-fips | 0 | 0 |
| Chainguard | cephcsi | 0 | 0 |
| Chainguard | cephcsi-fips | 0 | 0 |
| 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 | 0 |
| Chainguard | cert-manager-cainjector-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-cainjector-fips-1.19 | 0 | 0 |
| 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 |
| Chainguard | cert-manager-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-google-cas-issuer | 0 | 0 |
| Chainguard | cert-manager-istio-csr | 0 | 0 |
| Chainguard | cert-manager-istio-csr-fips | 0 | 0 |
| Chainguard | cert-manager-openshift-routes | 0 | 0 |
| Chainguard | cert-manager-openshift-routes-fips | 0 | 0 |
| Chainguard | cert-manager-startupapicheck-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-startupapicheck-fips-1.19 | 0 | 0 |
| Chainguard | cert-manager-webhook-fips-1.17 | 0 | 1.17.4-r6 |
| Chainguard | cert-manager-webhook-fips-1.19 | 0 | 0 |
| Chainguard | cert-manager-webhook-pdns-fips | 0 | 0 |
| Chainguard | cfssl | 0 | 0 |
| Chainguard | cfssl-bundle | 0 | 0 |
| Chainguard | chaos-mesh-fips | 0 | 2.8.1-r1 |
| Chainguard | chart-testing | 0 | 0 |
| Chainguard | chart-testing-fips | 0 | 0 |
| Chainguard | chisel | 0 | 0 |
| Chainguard | chisel-fips | 0 | 0 |
| Chainguard | cilium-certgen-0.1 | 0 | 0 |
| 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 | 0 |
| Chainguard | cis-operator-1.3 | 0 | 0 |
| Chainguard | clickhouse-operator-fips-metrics-exporter | 0 | 0 |
| Chainguard | clickhouse-operator-metrics-exporter | 0 | 0 |
| Chainguard | cloud-provider-aws-1.28-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-1.29-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-1.31-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-1.32-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-1.32-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-1.33-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-1.33-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-1.34-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.28-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.29-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.29-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.31-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.31-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.32-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.32-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.33-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.33-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.34-cloud-controller-manager | 0 | 0 |
| Chainguard | cloud-provider-aws-fips-1.34-ecr-credential-provider | 0 | 0 |
| Chainguard | cloud-provider-azure-cloud-controller-manager-1.31 | 0 | 0 |
| Chainguard | cloud-provider-azure-cloud-controller-manager-1.32 | 0 | 0 |
| Chainguard | cloud-provider-azure-cloud-controller-manager-1.33 | 0 | 0 |
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-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
- CVE-2025-61725 The ParseAddress function constructs domain-literal address components through repeated… Also affects stdlib