CVE-2026-41579: runc /dev Symlink Vulnerability – Docker Protected, Podman & Containerd at Risk
runc, the container runtime tool used by Docker and other container platforms, contains a vulnerability in how it sets up container filesystems. A malicious container image can exploit this by making /dev a symlink, causing runc to delete or create files in unexpected locations on the host system. Docker users are protected because Docker adds a read-only layer that blocks this attack, but other container tools built on runc may remain vulnerable if they don't have similar protections. The issue affects versions before 1.3.6, 1.4.3, and 1.5.0.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 3.3 LOW · CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Weaknesses (CWE)
- CWE-61
- Affected products
- 3 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-02
NVD description (verbatim)
runc is a CLI tool for spawning and running containers according to the OCI specification. In versions prior to 1.3.6, 1.4.0-rc.1, 1.4.0-rc.12, 1.5.0-rc.1, and 1.5.0-rc.1, when setting up the container rootfs, setupPtmx and setupDevSymlinks call os.Remove and os.Symlink with a filepath.Join string which allow an image with /dev as a symlink to trick runc into deleting files called ptmx on the host or creating a hardcoded set of symlinks with specific names and targets in an arbitrary pre-existing host directory. This issue is not exploitable under Docker, because Docker creates a top-level read-only layer that masks any malicious /dev symlink present in the container image — unlike some other Linux container tooling, whose higher-level runtimes built on runc remain exposed to exploitation via a malicious image. This issue has been fixed in versions 1.3.6, 1.4.3 and 1.5.0.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in runc's setupPtmx and setupDevSymlinks functions, which use filepath.Join to construct paths for device setup without proper validation. When an attacker-controlled container image contains /dev as a symlink pointing outside the container, os.Remove and os.Symlink operations are performed on attacker-influenced paths. This allows two attack vectors: deletion of a file named 'ptmx' on the host, or creation of hardcoded symlinks with predetermined names and targets in any pre-existing host directory accessible to the container process. The root cause is path traversal resulting from insufficient canonicalization of symlinks before filesystem operations. This is categorized as CWE-61 (Symlink Following).
Business impact
Organizations using runc-based container orchestration outside of Docker face risk of host filesystem tampering from untrusted or supply-chain-compromised container images. A successful exploit could modify host system configurations, alter critical symlinks, or delete host files that the container runtime has permissions to access. While the CVSS score is low, the impact depends heavily on deployment context—organizations running containers from untrusted registries or with insufficient image scanning controls face elevated risk. Docker deployments are not vulnerable due to Docker's architectural protections.
Affected systems
runc versions prior to 1.3.6, 1.4.3, and 1.5.0 are affected. The vulnerability impacts runc users on Linux systems. Container platforms and tools that directly use runc and do not implement Docker-style read-only masking layers (such as Podman, containerd configurations without the protective layer, and other runc-based runtimes) are susceptible. Docker Engine is not affected due to its layering architecture.
Exploitability
Exploitability requires control over a container image deployed to a system running vulnerable runc versions. The attack is not network-remote; an attacker must either supply a malicious image or compromise an image in a registry. Successful exploitation requires that the container runtime has write permissions to the target host directory. User interaction is minimal once a malicious image is pulled and executed. The vulnerability is technically exploitable but operationally constrained by image source control and runtime permissions. CVSS vector AV:L/AC:L/PR:N/UI:R reflects local attack vector requiring user interaction to run the container.
Remediation
Update runc to version 1.3.6 or later (1.4.3 for the 1.4.x branch, or 1.5.0 for the 1.5.x branch). For Docker users, no action is strictly necessary due to Docker's protective architecture, but staying current is a best practice. For other runc-based container runtimes (Podman, containerd, CRI-O), prioritize updates. Operationally, implement image scanning and source validation to reduce the risk of deploying malicious images, even before patching.
Patch guidance
Verify the current runc version in your deployment with 'runc version' or through your container runtime's version commands. For container orchestration platforms: update the underlying runc binary or use a patched container runtime distribution. Docker Desktop users should update to the latest version, which includes patched runc. Podman users should update via their OS package manager or download patched releases. Containerd should be updated to a version that bundles runc 1.3.6, 1.4.3, or 1.5.0 or later. Test patches in a non-production environment to ensure compatibility with your workloads.
Detection guidance
Monitor for attempts to pull or run container images that contain /dev as a symlink. Image scanning tools (Trivy, Grype, Anchore) should flag images with symlinks in /dev as suspicious. Runtime behavior monitoring can detect unusual symlink creation or file deletion patterns during container setup, particularly targeting ptmx. Audit logs for runc or container runtime initialization failures may indicate exploitation attempts. Review container image provenance and registry sources—restrict pulls to trusted, scanned registries.
Why prioritize this
This vulnerability carries low CVSS severity (3.3) and does not affect the most widely deployed container platform (Docker). However, organizations using alternative runc-based runtimes without Docker's protections should prioritize patching to prevent subtle host filesystem tampering from malicious images. The vulnerability is not in CISA's KEV catalog, indicating limited active exploitation in the wild. Prioritize based on deployment: Docker users can deprioritize; Podman, containerd, and other runc direct users should patch promptly.
Risk score, explained
The CVSS 3.1 score of 3.3 (LOW) reflects: local attack vector (AV:L) because exploitation requires container execution on a target system, low attack complexity (AC:L) because a malicious image can be prepared offline, no privileges required (PR:N) to exploit once a container process is spawned, user interaction (UI:R) in the form of running the container, unchanged scope (S:U), no confidentiality impact (C:N), limited integrity impact (I:L) via file/symlink manipulation, and no availability impact (A:N). The low severity is appropriate for a local, image-based attack that Docker deployment mitigates entirely. Risk elevation in your environment depends on use of non-Docker runc deployments and image source controls.
Frequently asked questions
Will this affect my Docker containers?
No. Docker implements a read-only top-level layer that masks any malicious /dev symlinks from container images, preventing exploitation. However, if you use Podman, containerd, or other runc-based runtimes without similar protections, you should update runc immediately.
How would an attacker actually exploit this?
An attacker would craft a container image containing /dev as a symlink pointing to a host directory (e.g., /etc or /). When runc sets up the container, it follows this symlink and performs file operations at that location. The attacker could delete or modify files like 'ptmx' or create hardcoded symlinks in that directory. Exploitation requires the image to be pulled and run on a vulnerable system.
Do I need to scan my existing images for this vulnerability?
Yes, as a defensive measure. Scan images in your registries for suspicious /dev symlinks using tools like Trivy or Grype. Even if you're on Docker (which is protected), identifying malicious images prevents lateral risk if those images are ever used on non-Docker runtimes. Focus on images from external or less-trusted sources.
What's the difference between runc versions 1.3.6, 1.4.3, and 1.5.0?
These are the patched versions for different release branches: 1.3.6 for the 1.3.x line, 1.4.3 for the 1.4.x line, and 1.5.0 for the 1.5.x line. Verify your current version and update to the next available patched release in your branch. All three contain the same security fix.
This analysis is based on official CVE data and vendor advisories current as of the publication date. Patch version numbers and affected versions should be verified against the Linux Foundation runc project repository and your vendor's security bulletins before deploying patches. CVSS scores are provided by the National Vulnerability Database and reflect general severity; your organization's actual risk depends on deployment architecture, image source controls, and runtime configuration. No exploit code or weaponized proof-of-concept is provided. This vulnerability is not currently tracked in CISA's Known Exploited Vulnerabilities catalog, but status may change. Always test security patches in non-production environments first. Source: NVD (public-domain), retrieved 2026-08-09. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-53489MEDIUMcontainerd CRI Plugin Arbitrary File Read via Symlink Validation Bypass
- CVE-2026-14699LOWSymlink Following in markdownify-mcp up to 1.1.0
- CVE-2025-43278MEDIUMmacOS Sequoia Symlink Handling Vulnerability – Patch to 15.4
- CVE-2026-12958HIGHSymlink Validation Bypass in AWS Language Servers
- CVE-2026-13201HIGHKubeVirt Symlink Following in virt-handler Privilege Escalation
- CVE-2026-13218MEDIUMKubeVirt Symlink Following in virt-handler Network Cache – Analysis & Patch Guidance
- CVE-2026-13748MEDIUMSnowflake CLI Path Traversal – Local File Disclosure
- CVE-2026-39822HIGHGo os.Root Symlink Escape on Unix Systems