Podman: WORKDIR symlink traversal vulnerability
Date: 2026-06
Affected: go/github.com/containers/podman/v3, go/github.com/containers/podman/v4, go/github.com/containers/podman/v5
Attack vector: path-traversal
Category: vulnerability-disclosure
Severity: Medium
CVE: CVE-2026-55686
CWE: CWE-59
CVSS: 5.3 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N)

### Summary Running a malicous container image where the WORKDIR path contains a symlink can create a directory or modify ownership on the host filesystem. Modified ownership is less likely to happen as that requires help from an untrusted/malicious process that mutates the host filesystem tree during dereferencing of the WORKDIR path, to trigger a race condition. ### Patch https://github.com/podman-container-tools/podman/commit/d18e44e9abb3bf5b7294aa70806e1368fdddfdd0 ### Details This issue was fixed in podman 5.7.1 (git commit 7ce2e00ab140c11a68301f0b161f51984131a858) ### PoC The reproducer script _test1.bash_ demonstrates the vulnerability. The directory `/var/BREAKOUT` is created on the host. The container process uses the container directory `/var/BREAKOUT` as current working directory. The reproducer script _test2.bash_ demonstrates the same vulnerability. The directory `/var/BREAKOUT` is created on the host. The container process uses the container directory `/usr/local` as current working directory. The reproducer script _test2.bash_ shows that the working directory can be different from the breakout directory. Reproducer **test1.bash** ``` #!/bin/bash set -o errexit set -o nounset if [ -e /var/BREAKOUT ]; then echo error: path /var/BREAKOUT should not exist beforehand exit 1 fi dir=$(mktemp -d) cat > $dir/Containerfile << 'EOF' FROM docker.io/library/alpine RUN cd / && ln -s ../../../../../../../var symlink USER 1234:1234 WORKDIR /symlink/BREAKOU


Mitigations:

Architectural layers (MAESTRO):