Impact
containerd is an open-source container runtime. Versions prior to 2.3.2, 2.2.5 and 2.1.9 contain a vulnerability in the CRI checkpoint import process 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. This issue has been fixed in versions 2.3.2, 2.2.5 and 2.1.9. The vulnerability arises from unchecked image reference validation (CWE-345), insufficient permission restriction (CWE-829), and improper tagging (CWE-1289).
Affected Systems
containerd:containerd versions older than 2.3.2, 2.2.5, or 2.1.9 are affected. These releases lack the patch that enforces validation of image references during checkpoint import. The vulnerability applies to any system running containerd with checkpoint import enabled.
Risk and Exploitability
The CVSS score of 5.6 indicates a moderate severity, and the EPSS score of less than 1% suggests a low probability of exploitation at the present. An attacker only needs permission to create pods, a relatively low barrier in many cluster configurations, and then must import a specially crafted checkpoint image to inject a malicious image into the node's local cache. Subsequent pods that use the poisoned tag will execute that image, effectively delivering arbitrary code to the pod's user space.
OpenCVE Enrichment
Github GHSA
Ubuntu USN