CRIU (Checkpoint/Restore In User-space) image files contain complete serialized process state, including raw memory pages, CPU register states, file descriptors, network credentials, and kernel security metadata. Because image files capture snapshots of in-memory data, they often contain sensitive plaintext secrets, such as TLS session keys, API tokens, user passwords, and decrypted application state.
To perform low-level process reconstruction, criu restore typically runs with
elevated capabilities (such as CAP_SYS_ADMIN or CAP_CHECKPOINT_RESTORE).
CRIU explicitly assumes that all image files provided to it are authentic,
confidential, and have not been tampered with or inspected by an untrusted
actor.
CRIU’s core guarantee is to faithfully restore processes to the exact state they were in when checkpointed, including their full security context (UID/GID, capabilities, Linux Security Modules like SELinux and AppArmor profiles, seccomp filters, namespaces, cgroups, etc.).
CRIU relies entirely on the metadata stored within the image files to reconstruct these security boundaries.
Because CRIU accurately applies the security attributes defined inside the image files using its own execution privileges:
creds-*.img).criu restore executes
with root or elevated capabilities, a crafted image can instruct CRIU to
restore the target process with those same elevated privileges. Even
without directly altering credentials, modifying serialized CPU register
instruction pointers (core-*.img) or memory payloads (pages-*.img)
enables arbitrary code execution at whatever privilege level the restored
process or container is assigned.Because image files store complete dumps of process memory and OS state,
unauthorized read access to CRIU image files is equivalent to reading process
memory via ptrace or inspecting live kernel core dumps. An untrusted actor
with read access can extract secrets and security-critical data directly from
the unencrypted memory images.
protobuf) structures and binary
payloads directly in privileged contexts; untrusted input could trigger
parser faults or unexpected restoration behaviors.criu restore is invoked.Because CRIU relies on the integrity and privacy of the input image set to enforce process security boundaries, operators must ensure image authenticity, integrity, and confidentiality before process restoration begins.
Depending on your deployment architecture, enforce the following core principles:
criu tool. An attacker can alter serialized registers
or memory to execute arbitrary code upon restoration.criu restore.To make securing image artifacts simpler and more seamless for container runtimes and orchestrators, the CRIU team is actively exploring and developing:
This native mechanism will allow users to protect sensitive process memory in transit and at rest while ensuring that modified or unauthorized images are automatically rejected at the restore boundary.