CVE-2025-32387
Medium · 6.5Helm Allows A Specially Crafted JSON Schema To Cause A Stack Overflow
CVSS
6.5
EPSS
0.5%
Published
Apr 10, 2025
CISA due date
—
Cloudanix analysis
A problem in the Helm tool lets attackers crash it by supplying a specially made chart file, which can stop teams from deploying or updating software.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Application
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A specially crafted JSON Schema embedded in a Helm chart triggers uncontrolled recursion or excessive stack allocation during schema processing, resulting in a stack overflow that crashes the Helm client or server process.
Why it matters to the business
Successful exploitation can interrupt Helm-based application deployments and upgrades, causing operational downtime for teams relying on chart installations; although EPSS remains low and no known exploitation or ransomware use exists, the vulnerability has been public for over 500 days and affects all unpatched Helm installations.
How an attack unfolds
An attacker creates a Helm chart containing a malicious JSON Schema engineered to cause stack exhaustion, then persuades a victim to perform helm install or helm upgrade against the chart; processing the schema during validation leads to the overflow and process termination.
How to fix it
Upgrade Helm to commit e4da49785aa6e6ee2b86efd5dd9e43400318262b or a later release containing the fix; avoid installing charts from untrusted sources until patched.
How to confirm the fix worked
Confirm the installed Helm binary reports a version containing commit e4da49785aa6e6ee2b86efd5dd9e43400318262b; re-test chart processing with known-good schemas and monitor for absence of crashes on previously problematic inputs.
Typical attack path
- Craft a JSON Schema containing deeply nested structures or recursive references designed to exhaust stack memory
- Package the schema inside a valid-looking Helm chart
- Host the chart in a repository or deliver it via social engineering
- Victim executes helm install, helm upgrade, or helm lint against the chart
- Helm parser processes the schema and crashes due to stack overflow
How to detect it
Search Helm and system logs for sudden process terminations or stack overflow signals during chart operations; correlate with chart installation events from untrusted sources.
What your security team should do
- Immediately upgrade all Helm installations to the fixed commit
- Restrict chart sources to trusted repositories and require chart signing
- Add Helm process crash monitoring to existing alerting
- Review and regenerate any internal charts that embed custom JSON Schemas
The record
A Helm contributor discovered that a specially crafted JSON Schema within a chart can lead to a stack overflow.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | helm.sh/helm/v3 | 0 | 3.17.3 |
| Bitnami | helm | 0 | 3.17.3 |
| Chainguard | cert-manager-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-acmesolver-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-acmesolver-1.12-iamguarded-compat | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-acmesolver-fips-1.12 | 0 | 1.12.17-r9 |
| Chainguard | cert-manager-cainjector-fips-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-cmctl | 0 | 2.1.1-r11 |
| Chainguard | cert-manager-cmctl-fips | 0 | 2.1.1-r10 |
| Chainguard | cert-manager-controller-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-controller-1.12-iamguarded-compat | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-controller-fips-1.12 | 0 | 1.12.17-r9 |
| Chainguard | cert-manager-fips-1.12 | 0 | 1.12.17-r9 |
| Chainguard | cert-manager-webhook-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-webhook-fips-1.12 | 0 | 1.12.17-r10 |
| Chainguard | chart-testing | 0 | 3.12.0-r2 |
| Chainguard | chart-testing-fips | 0 | 3.12.0-r3 |
| Chainguard | chartmuseum | 0 | 0.16.2-r18 |
| Chainguard | chartmuseum-fips | 0 | 0.16.2-r16 |
| Chainguard | cilium-cli | 0 | 0.18.3-r1 |
| Chainguard | cloudbeat-fips | 0 | 8.17.4-r2 |
| Chainguard | cluster-api-helm-controller | 0 | 0.4.1-r1 |
| Chainguard | cluster-api-helm-controller-compat | 0 | 0.4.1-r1 |
| Chainguard | cluster-api-helm-controller-fips | 0 | 0.4.1-r2 |
| Chainguard | cluster-api-helm-controller-fips-compat | 0 | 0.4.1-r2 |
| Chainguard | cmctl-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cmctl-fips-1.12 | 0 | 1.12.17-r9 |
| Chainguard | consul-k8s-1.7 | 0 | 1.7.1-r1 |
| Chainguard | consul-k8s-1.7-cli | 0 | 1.7.1-r1 |
| Chainguard | eksctl | 0 | 0.207.0-r3 |
| Chainguard | flux | 0 | 2.5.1-r5 |
| Chainguard | flux-2.5 | 0 | 2.5.1-r6 |
| Chainguard | flux-2.5-compat | 0 | 2.5.1-r6 |
| Chainguard | flux-compat | 0 | 2.5.1-r5 |
| Chainguard | flux-fips | 0 | 2.5.1-r5 |
| Chainguard | flux-fips-2.5 | 0 | 2.5.1-r5 |
| Chainguard | flux-fips-2.5-compat | 0 | 2.5.1-r5 |
| Chainguard | flux-fips-compat | 0 | 2.5.1-r5 |
| Chainguard | flux-helm-controller | 0 | 1.2.0-r7 |
| Chainguard | flux-helm-controller-bitnami-compat | 0 | 1.2.0-r7 |
| Chainguard | flux-helm-controller-fips | 0 | 1.2.0-r5 |
| Chainguard | flux-helm-controller-fips-iamguarded-compat | 0 | 1.2.0-r5 |
| Chainguard | flux-helm-controller-iamguarded-compat | 0 | 1.2.0-r7 |
| Chainguard | flux-source-controller | 0 | 1.5.0-r42 |
| Chainguard | flux-source-controller-bitnami-compat | 0 | 1.5.0-r42 |
| Chainguard | flux-source-controller-fips | 0 | 1.5.0-r8 |
| Chainguard | flux-source-controller-fips-iamguarded-compat | 0 | 1.5.0-r8 |
| Chainguard | flux-source-controller-iamguarded-compat | 0 | 1.5.0-r42 |
| Chainguard | fluxcd-source-controller-bitnami-compat | 0 | 1.5.0-r42 |
| Chainguard | gem-check | 0 | 0.0.13-r0 |
| Chainguard | gosh | 0 | 0.0.13-r0 |
| Chainguard | harbor-2.10 | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.10-exporter | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.10-jobservice | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.10-portal | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.10-portal-nginx-config | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.10-redis-compat | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.10-registryctl | 0 | 2.10.3-r16 |
| Chainguard | harbor-2.11 | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-exporter | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-jobservice | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-photon-registry | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-portal | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-portal-nginx-config | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-redis-compat | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.11-registryctl | 0 | 2.11.2-r8 |
| Chainguard | harbor-2.12 | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-exporter | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-jobservice | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-photon-registry | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-portal | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-portal-nginx-config | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-redis-compat | 0 | 2.12.2-r10 |
| Chainguard | harbor-2.12-registryctl | 0 | 2.12.2-r10 |
| Chainguard | harbor-fips-2.10 | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.10-db | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.10-exporter | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.10-jobservice | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.10-portal | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.10-redis-compat | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.10-registryctl | 0 | 2.10.3-r16 |
| Chainguard | harbor-fips-2.11 | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-db | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-exporter | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-jobservice | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-photon-registry | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-portal | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-redis-compat | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.11-registryctl | 0 | 2.11.2-r12 |
| Chainguard | harbor-fips-2.12 | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-db | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-exporter | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-jobservice | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-photon-registry | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-portal | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-redis-compat | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.12-registryctl | 0 | 2.12.2-r11 |
| Chainguard | harbor-fips-2.13 | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-db | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-exporter | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-jobservice | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-photon-registry | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-portal | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-redis-compat | 0 | 2.13.0-r1 |
| Chainguard | harbor-fips-2.13-registryctl | 0 | 2.13.0-r1 |
| Chainguard | header-check | 0 | 0.0.13-r0 |
| Chainguard | helm-docs | 0 | 1.14.2-r8 |
| Chainguard | helm-operator | 0 | 1.39.2-r1 |
| Chainguard | helm-operator-compat | 0 | 1.39.2-r1 |
| Chainguard | helm-operator-fips | 0 | 1.39.2-r1 |
| Chainguard | helm-operator-fips-compat | 0 | 1.39.2-r1 |
| Chainguard | helm-push | 0 | 0.10.4-r26 |
| Chainguard | help-check | 0 | 0.0.13-r0 |
| Chainguard | k8ssandra-client | 0 | 0.8.3-r2 |
| Chainguard | k8ssandra-client-compat | 0 | 0.8.3-r2 |
| Chainguard | k8ssandra-client-fips | 0 | 0.8.3-r2 |
| Chainguard | k9s | 0 | 0.50.3-r0 |
| Chainguard | kots | 0 | 1.124.14-r1 |
| Chainguard | kots-compat | 0 | 1.124.14-r1 |
| Chainguard | kots-symlink-compat | 0 | 1.124.14-r1 |
| Chainguard | kubescape | 0 | 3.0.34-r1 |
| Chainguard | kubevela | 0 | 1.10.4-r2 |
| Chainguard | kubevela-fips | 0 | 1.10.4-r3 |
| Chainguard | kubevela-vela-core-compat | 0 | 1.10.4-r3 |
| Chainguard | kubevela-vela-core-compat-fips | 0 | 1.10.4-r3 |
| Chainguard | kuma-2.7 | 0 | 2.7.19-r0 |
| Chainguard | kuma-2.8 | 0 | 2.8.8-r8 |
| Chainguard | kuma-cni-2.7 | 0 | 2.7.19-r0 |
| Chainguard | kuma-cni-2.8 | 0 | 2.8.8-r8 |
| Chainguard | kuma-cni-compat-2.7 | 0 | 2.7.19-r0 |
| Chainguard | kuma-cni-compat-2.8 | 0 | 2.8.8-r8 |
| Chainguard | kuma-cp-2.7 | 0 | 2.7.19-r0 |
| Chainguard | kuma-cp-2.8 | 0 | 2.8.8-r8 |
| Chainguard | kuma-dp-2.7 | 0 | 2.7.19-r0 |
| Chainguard | kuma-dp-2.8 | 0 | 2.8.8-r8 |
| Chainguard | kuma-install-cni-2.7 | 0 | 2.7.19-r0 |
| Chainguard | kuma-install-cni-2.8 | 0 | 2.8.8-r8 |
| Chainguard | ldd-check | 0 | 0.0.13-r0 |
| Chainguard | no-docs-check | 0 | 0.0.13-r0 |
| Chainguard | package-type-check | 0 | 0.0.13-r0 |
| Chainguard | pluto | 0 | 5.21.3-r3 |
| Chainguard | pluto-compat | 0 | 5.21.3-r3 |
| Chainguard | rancher-helm-3 | 0 | 3.19.0-r1 |
| Chainguard | symlink-check | 0 | 0.0.13-r0 |
| Chainguard | syspeek | 0 | 0.0.13-r0 |
| Chainguard | teleport | 0 | 17.4.3-r1 |
| Chainguard | trivy | 0 | 0.61.0-r1 |
| Chainguard | trivy-fips | 0 | 0.61.0-r2 |
| Chainguard | tw | 0 | 0.0.13-r0 |
| Chainguard | tw-pip-check | 0 | 0.0.13-r0 |
| Chainguard | twt | 0 | 0.0.13-r0 |
| Chainguard | usrmerge-tool | 0 | 0.0.13-r0 |
| Chainguard | ver-check | 0 | 0.0.13-r0 |
| Chainguard | verify-service | 0 | 0.0.13-r0 |
| Chainguard | zarf | 0 | 0.51.0-r1 |
| Chainguard | zot | 0 | 2.1.2-r10 |
| SUSE:Linux Enterprise Module for Containers 15 SP6 | helm-mirror | 0 | 0.3.1-150000.1.18.2 |
| SUSE:Linux Enterprise Module for Containers 15 SP7 | helm-mirror | 0 | 0.3.1-150000.1.18.2 |
| Wolfi | cert-manager-1.12 | 0 | 1.12.17-r10 |
| Wolfi | cert-manager-cmctl | 0 | 2.1.1-r11 |
| Wolfi | chart-testing | 0 | 3.12.0-r2 |
| Wolfi | chartmuseum | 0 | 0.16.2-r18 |
| Wolfi | cilium-cli | 0 | 0.18.3-r1 |
| Wolfi | cluster-api-helm-controller | 0 | 0.4.1-r1 |
| Wolfi | cluster-api-helm-controller-compat | 0 | 0.4.1-r1 |
| Wolfi | cmctl-1.12 | 0 | 1.12.17-r10 |
| Wolfi | consul-k8s-1.7 | 0 | 1.7.1-r1 |
| Wolfi | consul-k8s-1.7-cli | 0 | 1.7.1-r1 |
| Wolfi | eksctl | 0 | 0.207.0-r3 |
| Wolfi | flux | 0 | 2.5.1-r5 |
| Wolfi | flux-2.5 | 0 | 2.5.1-r6 |
| Wolfi | flux-2.5-compat | 0 | 2.5.1-r6 |
| Wolfi | flux-compat | 0 | 2.5.1-r5 |
| Wolfi | flux-helm-controller | 0 | 1.2.0-r7 |
| Wolfi | flux-helm-controller-bitnami-compat | 0 | 1.2.0-r7 |
| Wolfi | flux-helm-controller-iamguarded-compat | 0 | 1.2.0-r7 |
| Wolfi | flux-source-controller | 0 | 1.5.0-r42 |
| Wolfi | flux-source-controller-bitnami-compat | 0 | 1.5.0-r42 |
| Wolfi | flux-source-controller-iamguarded-compat | 0 | 1.5.0-r42 |
| Wolfi | fluxcd-source-controller-bitnami-compat | 0 | 1.5.0-r42 |
| Wolfi | gem-check | 0 | 0.0.13-r0 |
| Wolfi | gosh | 0 | 0.0.13-r0 |
| Wolfi | harbor-2.10 | 0 | 2.10.3-r16 |
| Wolfi | harbor-2.10-jobservice | 0 | 2.10.3-r16 |
| Wolfi | harbor-2.10-portal | 0 | 2.10.3-r16 |
| Wolfi | harbor-2.10-portal-nginx-config | 0 | 2.10.3-r16 |
| Wolfi | harbor-2.10-registryctl | 0 | 2.10.3-r16 |
| Wolfi | harbor-2.11 | 0 | 2.11.2-r8 |
| Wolfi | harbor-2.11-jobservice | 0 | 2.11.2-r8 |
| Wolfi | harbor-2.11-portal | 0 | 2.11.2-r8 |
| Wolfi | harbor-2.11-portal-nginx-config | 0 | 2.11.2-r8 |
| Wolfi | harbor-2.11-registryctl | 0 | 2.11.2-r8 |
| Wolfi | harbor-2.12 | 0 | 2.12.2-r10 |
| Wolfi | harbor-2.12-jobservice | 0 | 2.12.2-r10 |
| Wolfi | harbor-2.12-portal | 0 | 2.12.2-r10 |
| Wolfi | harbor-2.12-portal-nginx-config | 0 | 2.12.2-r10 |
| Wolfi | harbor-2.12-registryctl | 0 | 2.12.2-r10 |
| Wolfi | header-check | 0 | 0.0.13-r0 |
| Wolfi | helm-docs | 0 | 1.14.2-r8 |
| Wolfi | helm-operator | 0 | 1.39.2-r1 |
Related vulnerabilities
- CVE-2025-55198 Helm May Panic Due To Incorrect YAML Content Also affects helm.sh/helm/v3
- CVE-2025-55199 Helm Charts with Specific JSON Schema Values Can Cause Memory Exhaustion Also affects helm.sh/helm/v3
- CVE-2025-53547 Helm vulnerable to Code Injection through malicious chart.yaml content Also affects helm.sh/helm/v3
- CVE-2025-32386 Helm Allows A Specially Crafted Chart Archive To Cause Out Of Memory Termination Also affects helm.sh/helm/v3
- CVE-2025-64329 containerd CRI server: Host memory exhaustion through Attach goroutine leak Also affects cert-manager-1.12
- CVE-2024-25621 containerd affected by a local privilege escalation via wide permissions on CRI directory Also affects cert-manager-1.12
- CVE-2025-61725 The ParseAddress function constructs domain-literal address components through repeated… Also affects cert-manager-1.12
- CVE-2025-58185 Parsing a maliciously crafted DER payload could allocate large amounts of memory, causing… Also affects cert-manager-1.12