CVE-2026-94603: Podman: The `podman run` command can be instructed to disable almost all sandboxing by image annotation
Impact Podman v4.4.0 added a feature where container checkpoints (from the podman container checkpoint command) could be distributed via OCI registry, and pulled from that registry and run via the podman run command. This allowed easy transfer of checkpoints between systems. However, checkpoints allow complete control of how the container is created - including full control of the container sandbox. When podman run detects a checkpoint, it will silently ignore all user input regarding how the container should be created - for example, podman run --cap-drop=ALL on an image that is determined to be a checkpoint will ignore --cap-drop=all and use the set of capabilities specified by the checkpoint image instead, which could include all capabilities. Podman identifies checkpoint images by looking for an annotation, io.podman.annotations.checkpoint.runtime.name. If this annotation is set, the image is treated as a checkpoint. Conflating container images and checkpoints in podman run allows inherently insecure behavior as the image can now control how it is executed. The Podman Maintainers have determined that the safest course of action is to remove this functionality.
Patch The commit introducing this functionality was reverted.
3721ff82ffb44a4ceeaecc5abd3808e924a6b669 c74b1d37b3fb834b0de43e176565d9d8c254b627 fa6cef22c2baf3987b581c673bb416ef0585daf7 (main) ea9243e04d1db3886dc3a51ee3300ffb547cfc02 450c64426dbcff1097d3c7911d791101e3d16f4c 2d05a7c61f022d4f24980ea6d307fa53da2b8692 (v6.1) 7728ba0a90094408ad9078e36c3622a651d49616 24706290d5c974f078d8ca284026802515f28e92 29c8c6e50607df7a7d735ace09ff0ea099c0b3e0 (v5.8)
Workarounds Images being pulled should be scanned for the io.podman.annotations.checkpoint.runtime.name annotation, and rejected if it is present. Podman does not presently have the ability to perform this scanning and rejection automatically.
Also not that rootless containers are not affected as they do not support checkpoint/restore at all currently.
Credits This vulnerability was discovered by ADA Logics Ltd using Anthropic's Claude models.
Other sources
Podman is a tool for managing OCI containers and pods. From 4.4.0 until 5.8.8 and 6.1.3, podman run treats an image carrying the io.podman.annotations.checkpoint.runtime.name annotation as a checkpoint and silently ignores user-supplied container creation restrictions such as --cap-drop=ALL, allowing image-controlled checkpoint state to select weaker sandbox settings and capabilities. Rootless containers are not affected because checkpoint and restore are unavailable in that mode. This issue is fixed in versions 5.8.8 and 6.1.3.
— MITRE
Podman v4.4.0 added a feature where container checkpoints (from the podman container checkpoint command) could be distributed via OCI registry, and pulled from that registry and run via the podman run command. This allowed easy transfer of checkpoints between systems. However, checkpoints allow complete control of how the container is created - including full control of the container sandbox. When podman run detects a checkpoint, it will silently ignore all user input regarding how the container should be created - for example, podman run --cap-drop=ALL on an image that is determined to be a checkpoint will ignore --cap-drop=all and use the set of capabilities specified by the checkpoint image instead, which could include all capabilities. Podman identifies checkpoint images by looking for an annotation, io.podman.annotations.checkpoint.runtime.name. If this annotation is set, the image is treated as a checkpoint. Conflating container images and checkpoints in podman run allows inherently insecure behavior as the image can now control how it is executed. The Podman Maintainers have determined that the safest course of action is to remove this functionality.
— Red Hat
Podman: The podman run command can be instructed to disable almost all sandboxing by image annotation
— Microsoft
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/go.podman.io/podman/v6to a version that resolves this vulnerability.Fixed in 6.1.3 - Upgrade
Upgrade
go/github.com/containers/podmanto a version that resolves this vulnerability.Fixed in 5.8.8 - Upgrade
Upgrade
alpine/podmanto a version that resolves this vulnerability.Fixed in 5.8.8-r0 - Upgrade
Upgrade
go/github.com/containers/podman/v4to a version that resolves this vulnerability.Fixed in 5.8.8 - Upgrade
Upgrade
go/github.com/containers/podman/v5to a version that resolves this vulnerability.Fixed in 5.8.8 - Upgrade
Upgrade
Podmanto a version that resolves this vulnerability.Fixed in 5.8.8 - Upgrade
Upgrade
Podmanto a version that resolves this vulnerability.Fixed in 6.1.3 - Compensating control
Scan pulled container images for the io.podman.annotations.checkpoint.runtime.name annotation and reject images if it is present.
Event History
Frequently Asked Questions
Which deployments are exposed?
Podman installations running versions from 4.4.0 through versions before 5.8.8 or 6.1.3 are affected when running images that carry the io.podman.annotations.checkpoint.runtime.name annotation. Rootless containers are not affected because checkpoint and restore are unavailable in rootless mode.
What does an attacker need to exploit this issue?
An attacker needs to provide or convince an operator to run an image containing the checkpoint runtime-name annotation. Exploitation occurs through podman run and does not require privileges or user interaction beyond running that image.
Are explicitly supplied container hardening options reliable on affected versions?
No. For an annotated image treated as a checkpoint, podman run can silently ignore user-supplied creation restrictions, including --cap-drop=ALL, and use weaker sandbox settings and capabilities selected by the image-controlled checkpoint state.
What should be done if upgrading is possible?
Upgrade to Podman 5.8.8 or 6.1.3. These versions contain the fix.