Database/Container, Kubernetes & orchestration
containerd: CRI checkpoint restore takes process security state from the checkpoint, not the container config
Impact
When containerd restores a container from a CRI checkpoint, CRIU reinstates the process credentials, capabilities, no_new_privs flag and seccomp state recorded in the checkpoint instead of enforcing the destination ContainerConfig. Anyone able to create a container from a crafted checkpoint gets a process running as root with full capabilities and no seccomp filter, while CRI status reports the restricted configuration the operator asked for - so the node looks compliant to anything reading the API. On a GPU node that means a tenant workload escaping the confinement that was supposed to keep it away from the device files, the driver and its neighbours. Clusters that do not use CRI checkpoint restore are not affected.
Who can reach it
A local, authenticated actor who can create containers on the node (for example a tenant with pod-create rights, or a compromised component that can push a checkpoint image) on a cluster where CRI checkpoint restore is enabled.
What to do
Upgrade containerd to 2.2.7 or 2.3.4. Versions from 2.1.0 are affected. Upgrading containerd means restarting the runtime on each node, which in practice is a drain and restart rather than a hot patch on a GPU node with long-running jobs. If you cannot patch promptly, disable CRI checkpoint restore - a cluster that does not use it is not exposed.
References
Related entries
- etcd: Gateway can be pointed at itself, causing an infinite loop and control-plane DoSCVE-2020-15114 · etcdHigh
- Argo CD: Directory traversal via Helm charts discloses credentials from other Applications' value filesCVE-2022-24348 · Argo CDHigh
- Argo CD: Path traversal plus improper access control in the repo-serverCVE-2022-24730 · Argo CDHigh
- Harbor: Missing permission validation on Webhook policiesCVE-2022-31666 · HarborHigh
- Harbor: Missing permission validation on tag retention policies across projectsCVE-2022-31670 · HarborHigh
- Podman: Crafted container sharing IPC creates unbounded IPC resources in /dev/shmCVE-2024-3056 · PodmanHigh
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.