Summary
A privilege-management vulnerability in containerd's CRI checkpoint restore handling allows restored security settings to override the destination container configuration. An attacker who can create a container from a crafted checkpoint may run processes with elevated privileges, broad capabilities, disabled no-new-privileges protection, or absent seccomp enforcement.
A privilege-management vulnerability in containerd's CRI checkpoint restore handling allows restored security settings to override the destination container configuration. An attacker who can create a container from a crafted checkpoint may run processes with elevated privileges, broad capabilities, disabled no-new-privileges protection, or absent seccomp enforcement.
Affected context
The issue occurs in containerd deployments that use CRI CreateContainer checkpoint restoration. It requires checkpoint data to be supplied to the restore workflow; systems that do not use CRI checkpoint restore are outside the affected context. The risk is present when restored process security state is accepted instead of being reconciled with the requested ContainerConfig.
The issue occurs in containerd deployments that use CRI CreateContainer checkpoint restoration. It requires checkpoint data to be supplied to the restore workflow; systems that do not use CRI checkpoint restore are outside the affected context. The risk is present when restored process security state is accepted instead of being reconciled with the requested ContainerConfig.
Exploit preconditions
- Attack surface: The containerd CRI checkpoint restore workflow
- Required access: Permission to create a container from attacker-controlled or crafted checkpoint data
- Trigger point: Restoration of a checkpoint during CRI container creation
- Why exploitation is possible: CRIU restores credentials, capabilities, no_new_privs, and seccomp state from checkpoint data without reliably enforcing the destination container's requested security configuration
- Attack surface: The containerd CRI checkpoint restore workflow
- Required access: Permission to create a container from attacker-controlled or crafted checkpoint data
- Trigger point: Restoration of a checkpoint during CRI container creation
- Why exploitation is possible: CRIU restores credentials, capabilities, no_new_privs, and seccomp state from checkpoint data without reliably enforcing the destination container's requested security configuration
Why this happens
The underlying bug is a failure to enforce destination security policy during checkpoint restoration. Security-sensitive process attributes are restored from checkpoint data and can take precedence over the ContainerConfig supplied by the runtime request, allowing untrusted state to alter privilege and isolation controls. This behavior maps to CWE-269: Improper Privilege Management, because the component does not consistently apply the intended privileges and restrictions to the restored process.
The underlying bug is a failure to enforce destination security policy during checkpoint restoration. Security-sensitive process attributes are restored from checkpoint data and can take precedence over the ContainerConfig supplied by the runtime request, allowing untrusted state to alter privilege and isolation controls. This behavior maps to CWE-269: Improper Privilege Management, because the component does not consistently apply the intended privileges and restrictions to the restored process.
Potential impact
- A restored process may run as root inside the container
- The process may gain capabilities not intended by the destination configuration
- no_new_privs protections may be bypassed or omitted
- Seccomp filtering may not be enforced as expected
- An attacker could weaken container isolation and potentially access sensitive host or neighboring workloads
- A restored process may run as root inside the container
- The process may gain capabilities not intended by the destination configuration
- no_new_privs protections may be bypassed or omitted
- Seccomp filtering may not be enforced as expected
- An attacker could weaken container isolation and potentially access sensitive host or neighboring workloads
General mitigation guidance
Mitigation generally focuses on ensuring that checkpoint restoration cannot override the destination container's security policy.
Common defensive patterns include:
- Enforcing destination credentials, capabilities, no_new_privs, and seccomp settings after restoration
- Treating checkpoint contents as untrusted input and validating security-sensitive metadata
- Restricting which principals can create containers from checkpoints
- Disabling or isolating checkpoint restore where it is not required
- Applying least-privilege runtime, node, and workload permissions
- Using additional containment controls so a container compromise does not provide broad host access
Mitigation generally focuses on ensuring that checkpoint restoration cannot override the destination container's security policy.
Common defensive patterns include:
- Enforcing destination credentials, capabilities, no_new_privs, and seccomp settings after restoration
- Treating checkpoint contents as untrusted input and validating security-sensitive metadata
- Restricting which principals can create containers from checkpoints
- Disabling or isolating checkpoint restore where it is not required
- Applying least-privilege runtime, node, and workload permissions
- Using additional containment controls so a container compromise does not provide broad host access
How teams detect issues like this
Organizations can assess this class of issue through:
- Static and dynamic review of checkpoint restore paths for security-state reconciliation
- Code review checks that compare restored credentials and capabilities with the destination ContainerConfig
- Runtime tests verifying that root identity, capabilities, no_new_privs, and seccomp policies match the requested configuration
- Audit policies for container creation from checkpoints and unusual privilege transitions
- Admission controls restricting checkpoint creation and restore operations to approved workloads
- Automated security testing that exercises restore workflows with conflicting security settings
Organizations can assess this class of issue through:
- Static and dynamic review of checkpoint restore paths for security-state reconciliation
- Code review checks that compare restored credentials and capabilities with the destination ContainerConfig
- Runtime tests verifying that root identity, capabilities, no_new_privs, and seccomp policies match the requested configuration
- Audit policies for container creation from checkpoints and unusual privilege transitions
- Admission controls restricting checkpoint creation and restore operations to approved workloads
- Automated security testing that exercises restore workflows with conflicting security settings

