Summary
containerd's CRI implementation improperly trusts Container Device Interface (CDI) annotations found within untrusted checkpoint image metadata during container restoration. When restoring a container from a checkpoint, containerd preserves CDI-related annotations from the checkpoint archive rather than relying solely on the pod's create-time specification. This allows a user with pod creation permissions to bypass standard Kubernetes resource allocation and device plugin enforcement by injecting arbitrary CDI edits into the restored container.
Impact
Successful exploitation allows a user with pod creation permissions to inject arbitrary CDI edits — such as device nodes and host mounts — into a restored container by embedding crafted CDI annotations in a checkpoint image. This effectively bypasses Kubernetes device plugin enforcement and resource allocation controls. Environments where CDI is disabled or that lack sensitive device specifications in the CDI host directories (/etc/cdi and /var/run/cdi) are not affected. Recreating existing containers restored from untrusted checkpoints may be necessary to remove smuggled configuration.
Detection
Nodes running containerd v2.1.0–v2.1.8, v2.2.0–v2.2.4, or v2.3.0–v2.3.1 with CDI enabled are in the affected version range. Verify the running version and CDI configuration:
containerd --version
Check for CDI specifications in the host CDI directories:
ls /etc/cdi /var/run/cdi 2>/dev/null
If CDI specifications are present for sensitive devices, audit checkpoint restore operations for containers that gained unexpected device access. Review checkpoint archive annotations for CDI-related entries before restoring from untrusted sources.
Mitigation
Upgrade to one of the patched containerd releases:
- containerd v2.3.x: upgrade to v2.3.2 or later
- containerd v2.2.x: upgrade to v2.2.5 or later
- containerd v2.1.x: upgrade to v2.1.9 or later
If CDI capabilities are not required on the node, removing or temporarily relocating host CDI specifications from /etc/cdi and /var/run/cdi eliminates the reachability of this vulnerability. Restrict checkpoint image restoration to trusted sources as an additional control. Recreate any containers that were restored from untrusted checkpoint images to remove potentially smuggled CDI configuration.
Related Security Guidance
References
- GHSA-33vj-92qq-66hc — GitHub Security Advisory
- NVD CVE-2026-53492 — National Vulnerability Database