CVE-2026-88265 Overview
CVE-2026-88265 is a symlink-following flaw in the crun container runtime that allows a local, low-privileged actor inside a container to attach a host file to container stdio and alter its ownership. The issue occurs after pivot_root, when crun reopens /dev/null for stdio and follows a symlink instead of the expected device node. Affected versions include crun 1.29.1 and earlier. Default configurations that mount a fresh /dev inside the container are not exposed. No fixed release is available at the time of publication.
Critical Impact
A container process can cause crun to reopen a host-side file as container stdio and change that file's ownership, enabling integrity impact on host files outside the container boundary.
Affected Products
- crun container runtime, versions 1.29.1 and earlier
- Container platforms bundling vulnerable crun (for example, Podman, CRI-O deployments)
- Linux hosts running containers with non-default /dev configurations
Discovery Timeline
- 2026-09-10 - CVE-2026-88265 published to the National Vulnerability Database (NVD)
- 2026-09-10 - Last updated in NVD database
Technical Details for CVE-2026-88265
Vulnerability Analysis
The flaw resides in crun's stdio setup path executed after pivot_root. Following the root switch, crun reopens /dev/null to attach standard input, output, and error for the container process. If /dev/null inside the new root is a symlink instead of the expected character device, crun follows that symlink during reopen. The resolved target can point at a file on the host filesystem visible through the mount namespace. crun then treats that host file as container stdio and later performs a chown operation to align ownership with the container's user namespace mapping.
The result is that a container-controlled path can be redirected to a sensitive host file. Ownership of that file changes to a UID mapped inside the container's user namespace. This crosses the container isolation boundary and directly impacts host file integrity. The vulnerability is classified under [CWE-59] Improper Link Resolution Before File Access (Link Following).
Root Cause
The root cause is missing O_NOFOLLOW semantics or equivalent link-resolution hardening when crun reopens /dev/null for stdio after pivot_root. The runtime trusts that the path resolves to a device node inside the new root, but a hostile image or a compromised container can substitute a symlink pointing outside the intended device tree.
Attack Vector
Exploitation requires local access to a container that does not receive a fresh /dev mount from the runtime. An attacker who controls the container image or the container's early filesystem state replaces /dev/null with a symlink to a chosen host file. When crun reopens stdio, it opens the symlink target and then invokes chown against it. Attack complexity is high because the attacker must control container filesystem contents at the right lifecycle stage and the deployment must skip the default fresh /dev mount.
No verified proof-of-concept code is publicly available. Refer to the Red Hat CVE-2026-88265 Advisory and the Red Hat Bug Report #2531224 for vendor-provided technical detail.
Detection Methods for CVE-2026-88265
Indicators of Compromise
- Unexpected ownership changes on host files, especially files whose paths could be reached from a container mount namespace.
- Presence of a symlink at /dev/null inside a container rootfs where a character device is expected.
- Container images or layers that ship a symlink in place of the standard /dev/null device node.
Detection Strategies
- Inventory container images and inspect the /dev tree in each layer for symlinks replacing device nodes.
- Audit container runtime configurations for workloads that disable the default fresh /dev mount.
- Correlate chown syscall telemetry on host paths with container process ancestry to surface cross-boundary ownership changes.
Monitoring Recommendations
- Enable auditd rules for chown, fchown, and lchownat syscalls issued by crun, runc, or container init processes.
- Alert on file ownership changes to files under /etc, /root, /var, and other sensitive host paths originating from container runtime PIDs.
- Track crun version across hosts and flag any host running 1.29.1 or earlier until a fixed release is available.
How to Mitigate CVE-2026-88265
Immediate Actions Required
- Verify that container runtime configuration mounts a fresh /dev inside every container, which is the default and non-exposed configuration.
- Review and reject container images that ship symlinks in place of /dev/null or other standard device nodes.
- Restrict which users and workloads can launch containers with custom /dev configurations.
Patch Information
No fixed release of crun is available at the time of publication. Track upstream updates in the GitHub crun Container Runtime Repository and vendor guidance in the Red Hat CVE-2026-88265 Advisory for a corrected version.
Workarounds
- Keep the runtime default that mounts a fresh /dev tmpfs inside containers; do not override this with host /dev bind mounts.
- Enforce read-only or verified container images through signature validation to prevent substitution of /dev/null with a symlink.
- Apply mandatory access controls such as SELinux or AppArmor policies that restrict crun from writing to sensitive host paths.
# Verify /dev/null inside a running container is a character device, not a symlink
podman exec <container> stat -c '%F %n' /dev/null
# Expected output: character special file /dev/null
# Inspect an image layer for a symlinked /dev/null before running it
podman unshare -- ls -l $(podman image mount <image>)/dev/null
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

