Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-17113

CVE-2026-17113: CRI-O Container Runtime DOS Vulnerability

CVE-2026-17113 is a denial of service vulnerability in CRI-O container runtime caused by improper environment variable handling that crashes the daemon. This article covers technical details, affected versions, impact, and mitigation strategies.

Published:

CVE-2026-17113 Overview

CVE-2026-17113 is a denial-of-service vulnerability in CRI-O, the Kubernetes Container Runtime Interface implementation for Open Container Initiative (OCI) containers. The flaw resides in the mergeEnvs function in server/utils.go, consumed by setupContainerEnvironmentAndWorkdir in server/container_create.go. When a CreateContainer request supplies a nil CRI Envs field, CRI-O uses the target OCI image's config.Env entries unfiltered. A malformed entry without an = character triggers an out-of-bounds slice index, causing a Go runtime panic that crashes the crio daemon and terminates the container runtime for all workloads on the node.

Critical Impact

A crafted OCI image can crash the CRI-O daemon on a Kubernetes node, halting all container workloads until the runtime service is restarted.

Affected Products

  • CRI-O container runtime (Red Hat OpenShift Container Platform components)
  • Kubernetes nodes using CRI-O as the container runtime
  • Red Hat products consuming affected CRI-O builds (see Red Hat CVE-2026-17113 Advisory)

Discovery Timeline

  • 2026-08-24 - CVE-2026-17113 published to the National Vulnerability Database (NVD)
  • 2026-08-27 - Last updated in NVD database

Technical Details for CVE-2026-17113

Vulnerability Analysis

CRI-O merges container environment variables from two sources: the CRI Envs field provided in a CreateContainer request, and the OCI image's config.Env metadata. The normal merge path validates each entry for the expected key=value form before use. However, when the CRI Envs field is nil, CRI-O bypasses validation and applies image config.Env entries directly.

An OCI image config.Env entry lacking the = delimiter causes strings.SplitN to return a single-element slice. The subsequent code indexes the second element of that slice, which does not exist. Go raises a runtime panic for the out-of-range index, and because the panic is not recovered, the entire crio daemon process terminates. This is classified as [CWE-1287] Improper Validation of Specified Type of Input.

Root Cause

The root cause is missing input validation in the fallback code path of mergeEnvs. The unfiltered path assumes every config.Env entry conforms to key=value format but does not enforce this assumption before indexing the split result. A single malformed entry, such as a bare NOEQUALS string, is sufficient to trigger the panic.

Attack Vector

Exploitation requires the ability to schedule a container from an attacker-controlled OCI image on a node running affected CRI-O versions, and requires no user interaction. The attacker crafts an image whose config.Env includes an entry without an = character. When CRI-O attempts to create the container with a nil CRI Envs field, the daemon panics. The impact extends beyond the attacker's container: the CRI-O service crash disrupts all workloads on that node, producing a scope-changed availability impact.

Because no verified proof-of-concept code is published, the vulnerability mechanism is described in prose. See the Red Hat Bug Report #2506872 for further technical details.

Detection Methods for CVE-2026-17113

Indicators of Compromise

  • Unexpected crio daemon restarts or crash loops on Kubernetes worker nodes
  • Go runtime panic entries in journald or system logs referencing mergeEnvs, setupContainerEnvironmentAndWorkdir, or an index-out-of-range error
  • Node NotReady transitions correlated with recent container creation events for untrusted images

Detection Strategies

  • Audit Kubernetes admission logs and container image provenance for images pulled from untrusted registries prior to CRI-O crashes
  • Inspect OCI image config.Env metadata for entries lacking the = character using skopeo inspect or equivalent tooling
  • Correlate systemd service restart events for crio.service with container creation timestamps in the kubelet log

Monitoring Recommendations

  • Alert on crio.service process termination and restart events across all cluster nodes
  • Monitor kubelet events for repeated RunContainerError or CreateContainerError conditions tied to specific images
  • Track image pull activity from external or user-supplied registries and flag deviations from allowlisted sources

How to Mitigate CVE-2026-17113

Immediate Actions Required

  • Apply the CRI-O security update provided by your distribution or platform vendor as soon as it is available
  • Restrict which principals can create pods that reference arbitrary external container images, particularly on multi-tenant clusters
  • Enforce image signature verification and admission control policies to block unverified images

Patch Information

Refer to the Red Hat CVE-2026-17113 Advisory for the list of fixed CRI-O builds and affected Red Hat products. Apply vendor-provided errata on all Kubernetes and OpenShift nodes running CRI-O. Restart the crio service after patching to load the fixed binary.

Workarounds

  • Configure admission controllers such as Kyverno or Open Policy Agent Gatekeeper to reject pods referencing images from untrusted registries
  • Require an explicit non-empty env field on pod specifications where feasible, avoiding the vulnerable nil CRI Envs code path
  • Limit pods/create RBAC permissions to trusted service accounts and human operators
  • Scan container images in registries for config.Env entries that do not match the key=value format and quarantine non-conforming images
bash
# Inspect an OCI image config.Env for malformed entries
skopeo inspect --config docker://<registry>/<image>:<tag> \
  | jq -r '.config.Env[]' \
  | grep -v '=' && echo 'Malformed env entries detected'

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.