containerd: CRI checkpoint import allows local image tag poisoning
Date: 2026-06
Affected: go/github.com/containerd/containerd/v2, go/github.com/containerd/containerd/v2, go/github.com/containerd/containerd/v2
Attack vector: rce
Category: vulnerability-disclosure
Severity: Medium
CVE: CVE-2026-50195
CWE: CWE-345
CWE-829

## Impact containerd's CRI checkpoint import process contains a vulnerability where it fails to validate the image references specified within a checkpoint image's configuration. An attacker with permissions to create pods can use a crafted checkpoint image to force containerd to pull a malicious image and assign it an arbitrary local tag, thereby poisoning the node's local image cache. Subsequently, if other pods on the same node attempt to use the poisoned tag with an `IfNotPresent` (or `Never`) pull policy, they will unknowingly execute the attacker's malicious image instead of the legitimate one. This can lead to a compromise of the affected pods, allowing the attacker to execute arbitrary code under the victim pod's identity. ## Patches This bug has been fixed in the following containerd versions: * 2.3.2 * 2.2.5 * 2.1.9 Users should update to these versions to resolve the issue. ## Workarounds Users should only allow trusted images to be pulled. ## Credits The containerd project would like to thank Henry Beberman (@hbeberman) of Microsoft, the GKE Security Team using Gemini, Anthropic Research, in collaboration with Claude, and Robert Prast (@robertprast) who independently discovered and responsibly disclosed this issue in accordance with the [containerd security policy](https://github.com/containerd/project/blob/main/SECURITY.md). ## For more information If you have any questions or comments about this advisory: * Open an issue in [containerd](https://github.com/


Mitigations:

Architectural layers (MAESTRO):