Executive brief
CRI-O is a container runtime that manages containerized workloads in Kubernetes environments. A flaw in how it processes environment variables from container images can cause the CRI-O daemon to crash, disabling all container services on that node until manually restarted. An attacker with the ability to create containers using a specially crafted image could trigger this crash and interrupt all workloads running on the affected node.
Technical details
CRI-O's `mergeEnvs` function in `server/utils.go` fails to validate environment-variable entries when a CreateContainer request supplies a nil CRI Envs field. In this fallback path, entries from the OCI image's `config.Env` are used directly without the validation checks present in the normal merge path. If an image's config.Env contains a malformed entry lacking an `=` character (e.g., a bare string like `NOEQUALS`), the code splits it into a single-element slice and then attempts to index the second element, causing an out-of-bounds access. This triggers an unrecovered Go runtime panic in the crio daemon process, crashing the container-runtime service and preventing all containers on the node from running until the daemon is manually restarted. The vulnerability requires the ability to create a container with a malicious OCI image, but no valid CRI Envs field.
Affected products
- CRI-O CRI-O
Timeline
- 2026-08-24: disclosed