CVE-2025-32386 Overview
CVE-2025-32386 is a Denial of Service (DoS) vulnerability affecting Helm, the popular Kubernetes package manager used for managing Charts. The vulnerability allows an attacker to craft a malicious chart archive file that expands to a significantly larger size when decompressed compared to its compressed form (e.g., greater than 800x difference). When Helm attempts to load this specially crafted chart, memory exhaustion occurs, causing the application to terminate unexpectedly.
This type of attack, commonly known as a "decompression bomb" or "zip bomb," exploits the lack of size validation during the archive extraction process. The vulnerability poses a significant risk to Kubernetes environments where untrusted chart sources may be used.
Critical Impact
Attackers can cause memory exhaustion and application termination by providing maliciously crafted Helm chart archives, potentially disrupting Kubernetes deployment workflows and CI/CD pipelines.
Affected Products
- Helm versions prior to v3.17.3
- helm:helm component
Discovery Timeline
- 2025-04-09 - CVE CVE-2025-32386 published to NVD
- 2025-09-03 - Last updated in NVD database
Technical Details for CVE-2025-32386
Vulnerability Analysis
This vulnerability is classified under CWE-770 (Allocation of Resources Without Limits or Throttling). The core issue stems from Helm's chart loading mechanism which did not impose size limits on decompressed chart archive contents. An attacker could exploit this by creating a compressed archive that appears small but contains highly compressible data patterns that expand dramatically during decompression.
When a user or automated system attempts to load such a malicious chart, Helm would allocate memory proportional to the decompressed size without any upper bounds. This could lead to memory exhaustion on the host system, causing the Helm process to crash and potentially affecting other processes on the same system due to resource starvation.
The vulnerability requires user interaction (such as downloading and installing a chart from an untrusted source), but can be exploited remotely via network delivery of the malicious archive.
Root Cause
The root cause of CVE-2025-32386 is the absence of decompression size limits in Helm's chart archive loader. The pkg/chart/v2/loader/archive.go and pkg/chart/v2/loader/directory.go components lacked validation to check the total decompressed size of chart archives and individual files within them. Without these safeguards, the application would blindly allocate memory for arbitrarily large decompressed content.
Attack Vector
The attack vector is network-based, requiring the victim to load a maliciously crafted Helm chart. Attack scenarios include:
- An attacker publishes a malicious chart to a public chart repository
- A victim pulls and attempts to install the chart using helm install
- Helm decompresses the archive, allocating excessive memory
- The application terminates due to memory exhaustion
The following code shows the security patch that introduces decompression size limits:
// MaxDecompressedChartSize is the maximum size of a chart archive that will be
// decompressed. This is the decompressed size of all the files.
// The default value is 100 MiB.
var MaxDecompressedChartSize int64 = 100 * 1024 * 1024 // Default 100 MiB
// MaxDecompressedFileSize is the size of the largest file that Helm will attempt to load.
// The size of the file is the decompressed version of it when it is stored in an archive.
var MaxDecompressedFileSize int64 = 5 * 1024 * 1024 // Default 5 MiB
Source: GitHub Commit d8ca55f
The patch also adds file size validation in the directory loader:
if fi.Size() > MaxDecompressedFileSize {
return fmt.Errorf("chart file %q is larger than the maximum file size %d", fi.Name(), MaxDecompressedFileSize)
}
data, err := os.ReadFile(name)
if err != nil {
return errors.Wrapf(err, "error reading %s", n)
Source: GitHub Commit d8ca55f
Detection Methods for CVE-2025-32386
Indicators of Compromise
- Unexpected Helm process crashes with out-of-memory (OOM) errors
- Sudden memory spikes on systems running Helm operations
- System logs showing memory allocation failures during chart loading operations
- Kubernetes nodes experiencing resource pressure during chart installations
Detection Strategies
- Monitor system memory utilization during Helm chart operations for abnormal spikes
- Implement alerting on Helm process terminations, particularly with OOM-related exit codes
- Review chart sources for unusually small archives that may contain decompression bombs
- Audit repository access logs for downloads of suspicious or unknown charts
Monitoring Recommendations
- Configure memory limits for Helm operations using cgroups or container resource constraints
- Implement logging for chart loading operations including source and file sizes
- Deploy monitoring solutions that track memory allocation patterns for Helm processes
- Set up alerts for sudden increases in chart archive sizes or unusual compression ratios
How to Mitigate CVE-2025-32386
Immediate Actions Required
- Upgrade Helm to version v3.17.3 or later immediately
- Restrict chart installations to trusted, verified chart repositories only
- Review any recently installed charts from untrusted sources
- Implement resource limits for environments running Helm operations
Patch Information
The vulnerability has been resolved in Helm v3.17.3. The fix introduces two new configuration variables that impose hard limits on decompressed content:
- MaxDecompressedChartSize: Limits total decompressed chart size to 100 MiB by default
- MaxDecompressedFileSize: Limits individual file size to 5 MiB by default
For detailed patch information, see the GitHub Commit and the GitHub Security Advisory.
Workarounds
- Only install charts from trusted and verified sources until the patch is applied
- Implement network-level controls to restrict access to untrusted chart repositories
- Use container resource limits to contain the impact of potential memory exhaustion
- Pre-scan chart archives for suspicious compression ratios before installation
# Configuration example - Upgrade Helm to patched version
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash -s -- --version v3.17.3
# Verify installed version
helm version --short
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

