CVE-2025-55199 Overview
CVE-2025-55199 is a denial-of-service vulnerability in Helm, the package manager for Kubernetes charts. Versions prior to 3.18.5 fail to safely process JSON Schema files that contain a $ref pointing to /dev/zero. When Helm loads such a schema, it consumes all available memory and terminates with an out-of-memory (OOM) error. The flaw is classified under [CWE-770: Allocation of Resources Without Limits or Throttling]. Exploitation requires a user to load a malicious chart, but no privileges or authentication are needed on the target system.
Critical Impact
A crafted Helm chart can force the Helm client or automation pipeline to exhaust host memory, disrupting CI/CD workflows and Kubernetes deployment operations.
Affected Products
- Helm versions prior to 3.18.5
- Kubernetes deployment pipelines that ingest untrusted Helm charts
- CI/CD systems using vulnerable Helm binaries or libraries
Discovery Timeline
- 2025-08-14 - CVE-2025-55199 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-55199
Vulnerability Analysis
Helm validates chart values against a values.schema.json file using JSON Schema semantics. The schema parser resolves $ref pointers to load referenced schema fragments. Prior to version 3.18.5, the resolver treats file paths supplied in $ref as trusted local resources and reads their entire contents into memory. When a chart references a pseudo-device such as /dev/zero, the read never terminates and Helm allocates memory until the process is killed.
The flaw stems from unbounded resource consumption during schema dereferencing. The parser did not validate the target of $ref or impose a size cap on the resolved content. Any environment executing helm install, helm template, or helm lint against the malicious chart triggers the condition. Automated pipelines that pull charts from public repositories are the most exposed.
Root Cause
The root cause lies in the pkg/chartutil/jsonschema.go component, which previously used the github.com/xeipuuv/gojsonschema library. That library resolved $ref values without size or type checks. The fix replaces the library with github.com/santhosh-tekuri/jsonschema/v6, which handles reference resolution with stricter validation and bounded reads.
Attack Vector
An attacker publishes or distributes a Helm chart containing a values.schema.json file with a $ref entry pointing to /dev/zero or a similarly unbounded resource. When a victim runs a Helm command that loads the chart, the process allocates memory continuously and terminates. In shared CI/CD runners, this can affect adjacent workloads and stall deployments.
// Patch excerpt: pkg/chartutil/jsonschema.go
// Replaces gojsonschema with santhosh-tekuri/jsonschema/v6
import (
"bytes"
"errors"
"fmt"
"strings"
"github.com/santhosh-tekuri/jsonschema/v6"
"helm.sh/helm/v3/pkg/chart"
)
Source: Helm commit b78692c
Detection Methods for CVE-2025-55199
Indicators of Compromise
- Helm processes terminating with OOM errors during chart install, template, or lint operations
- values.schema.json files inside charts containing $ref values that reference /dev/zero, /dev/urandom, or other unbounded device paths
- Kernel oom-killer log entries naming the helm binary
- CI/CD job failures immediately after fetching a chart from an untrusted repository
Detection Strategies
- Statically scan Helm chart archives for $ref values referencing local file paths or device files before ingestion
- Monitor memory consumption of Helm processes and alert when resident set size grows beyond a defined threshold
- Audit installed Helm binary versions across build agents and developer workstations to identify versions prior to 3.18.5
Monitoring Recommendations
- Collect and centralize CI/CD runner system logs, including dmesg output, to surface OOM kills tied to Helm
- Track Helm command exit codes and duration in build telemetry to detect anomalous terminations
- Alert on newly added charts in internal registries that include values.schema.json files with external or device-path $ref values
How to Mitigate CVE-2025-55199
Immediate Actions Required
- Upgrade all Helm client installations and library dependencies to version 3.18.5 or later
- Inventory CI/CD pipelines, developer workstations, and Kubernetes tooling images that bundle Helm
- Restrict chart sources to trusted, signed repositories until upgrades are complete
- Review recently ingested charts for malicious $ref entries in schema files
Patch Information
The fix is delivered in Helm 3.18.5. The maintainers replaced the JSON Schema library with github.com/santhosh-tekuri/jsonschema/v6, which validates $ref targets and prevents unbounded reads. Details are documented in the GitHub Security Advisory GHSA-9h84-qmv7-982p and the Helm commit b78692c.
Workarounds
- Inspect every chart prior to loading and reject any values.schema.json containing $ref pointers to /dev/zero or other device files
- Run Helm inside sandboxed containers with strict memory limits to contain OOM conditions
- Disable automated chart installation from untrusted or public repositories until patched Helm binaries are deployed
# Verify installed Helm version and upgrade if below 3.18.5
helm version --short
# Scan chart archives for suspicious $ref entries before use
grep -R '"\$ref"' ./charts | grep -E '/dev/(zero|urandom|null|random)'
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

