How to fix CVE-2024-21626 – Step-by-Step Guide
CVE-2024-21626, also known as "Leaky Vessels," is a high-severity container escape vulnerability in runc. This critical flaw allows attackers to break out of container isolation and gain root access to the host system. It impacts popular container runtimes like Docker and Kubernetes.
What is runc Container Escape – Leaky Vessels?
CVE-2024-21626 is a file descriptor leak in runc, specifically affecting versions prior to 1.1.12. This vulnerability allows a malicious container to access sensitive host file descriptors via /proc/self/fd. By exploiting this leak, an attacker can bypass container isolation and execute arbitrary commands as root on the host system.
Impact and Risks for your Infrastructure
The impact of CVE-2024-21626 is severe, enabling full container escape to host root privileges. This allows an attacker to compromise the entire underlying infrastructure, access sensitive data, or disrupt services. Businesses face significant data breach risks and operational downtime.
Step-by-Step Mitigation Guide
To mitigate CVE-2024-21626, update runc to version 1.1.12 or higher immediately. For Docker, Kubernetes, and containerd users, ensure your container runtime packages are updated to include the patched runc version. Verify the fix by checking your runc version and confirming no active containers are running vulnerable versions.
- 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.