VDB
Sign up
HIGH7.5

GHSA-4hq8-gpf5-8p68

Podman: Malformed Image can trick podman run into leaking host environment variables into the container

Quick fix

GHSA-4hq8-gpf5-8p68 — github.com/containers/podman/v5: upgrade to the fixed version with the command below.

go get github.com/containers/podman/v5@v5.8.4

Details

## Summary

An container image that contains a environment variable with just a key and no value can trick podman into passing that variable from the host into the container. This is made worse by the fact that using an asterisk (*) will cause podman to pass all host variables into the container. So essentially a malicious image can exfiltrate all podman environment variables that are set in the session from where the container is launched.

## Details

podman run allows `--env VAR1` or `--env VAR*` which will read the variable values from the current environment and then passes them into the container. However because the same parsing logic was reused for the image config env section that means that an image variable could also gain access to that.

## Patch

That image spec requires the env variables to be in the form of `key=value`, so to address this invalid formatted variables get rejected and the container will not run.

Fixed in https://github.com/podman-container-tools/podman/commit/6c431b73dbf8e4b20b778644d7a80caebdb75050

## Workaround

Do not run untrusted images. Before running an image consider inspecting the config with `podman image inspect --format '{{.Config.Env}}' <image>` and check for any variables that do not have a value assigned.

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/github.com/containers/podman/v5
Introduced in: 0Fixed in: 5.8.4
Fixgo get github.com/containers/podman/v5@v5.8.4
Go/go.podman.io/podman/v6
Introduced in: 0Fixed in: 6.0.0
Fixgo get go.podman.io/podman/v6@v6.0.0
Go/github.com/containers/podman/v4
Introduced in: 0

No fixed version published yet for github.com/containers/podman/v4 (go modules). Pin to a known-safe version or switch to an alternative.

Go/github.com/containers/podman/v3
Introduced in: 0

No fixed version published yet for github.com/containers/podman/v3 (go modules). Pin to a known-safe version or switch to an alternative.

Go/github.com/containers/podman/v2
Introduced in: 0

No fixed version published yet for github.com/containers/podman/v2 (go modules). Pin to a known-safe version or switch to an alternative.

Go/github.com/containers/podman
Introduced in: 1.8.1

No fixed version published yet for github.com/containers/podman (go modules). Pin to a known-safe version or switch to an alternative.

References