How to fix CVE-2024-21626 – Step-by-Step Guide
CVE-2024-21626, dubbed "Leaky Vessels," is a high-severity runc vulnerability (CVSS 8.6) published on January 31, 2024. This critical flaw enables container escape, posing a significant risk to Docker, Kubernetes, and other runc-based environments.
What is runc Container Escape – Leaky Vessels?
CVE-2024-21626 is a runc file descriptor leak affecting versions prior to 1.1.12. An attacker inside a container can exploit this leak via /proc/self/fd to break container isolation. This allows them to execute arbitrary code outside the container's sandbox.
Impact and Risks for your Infrastructure
Successful exploitation of CVE-2024-21626 leads to a full container escape, granting root privileges on the host system. This can result in complete compromise of the underlying infrastructure, potential data breaches, and disruption of critical services.
Step-by-Step Mitigation Guide
To mitigate CVE-2024-21626, update runc to version 1.1.12 or higher immediately. Verify the update by checking your runc version. Ensure all affected container runtimes like Docker and Kubernetes are restarted to apply the patched runc binary effectively.
- 1Update runc to 1.1.12 or later.
- 2Update Docker to 25.0.2+ / 24.0.9+ and containerd to 1.7.13+ / 1.6.27+.
- 3Run containers as non-root with --user and --cap-drop=ALL.
- 4Enable Seccomp and AppArmor/SELinux profiles for containers.
- 5Restrict /proc access with read-only mounts where possible.
- 6Run containers in rootless mode (Podman, rootless Docker) for defense-in-depth.