CVE-2023-24827 Credential disclosure in syft when SYFT_ATTEST_PASSWORD environment variable set in syft

Medium 6.5 Published Updated

Attackers can read sensitive passwords from logs or SBOM attestations if the SYFT_ATTEST_PASSWORD environment variable is set.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2023-24827?

CVE-2023-24827 is a medium-severity vulnerability in anchore syft, published on 7 Feb 2023. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official description

syft is a a CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems. A password disclosure flaw was found in Syft versions v0.69.0 and v0.69.1. This flaw leaks the password stored in the SYFT_ATTEST_PASSWORD environment variable. The `SYFT_ATTEST_PASSWORD` environment variable is for the `syft attest` command to generate attested SBOMs for the given container image. This environment variable is used to decrypt the private key (provided with `syft attest --key <path-to-key-file>`) during the signing process while generating an SBOM attestation. This vulnerability affects users running syft that have the `SYFT_ATTEST_PASSWORD` environment variable set with credentials (regardless of if the attest command is being used or not). Users that do not have the environment variable `SYFT_ATTEST_PASSWORD` set are not affected by this issue. The credentials are leaked in two ways: in the syft logs when `-vv` or `-vvv` are used in the syft command (which is any log level >= `DEBUG`) and in the attestation or SBOM only when the `syft-json` format is used. Note that as of v0.69.0 any generated attestations by the `syft attest` command are uploaded to the OCI registry (if you have write access to that registry) in the same way `cosign attach` is done. This means that any attestations generated for the affected versions of syft when the `SYFT_ATTEST_PASSWORD` environment variable was set would leak credentials in the attestation payload uploaded to the OCI registry. This issue has been patched in commit `9995950c70` and has been released as v0.70.0. There are no workarounds for this vulnerability. Users are advised to upgrade.

Weakness: CWE-532, CWE-200

Which versions are affected by CVE-2023-24827?

3 open source packages ship an affected version, including github.com/anchore/syft. It affects 1 product.

PackageAffectedFixed in
github.com/anchore/syft GoFrom 0.69.00.70.0
github.com/anchore/syft GoFrom 0.69.00.70.0
github.com/anchore/syft GoFrom 0.69.00.70.0

Products include Anchore Syft.

How do I fix CVE-2023-24827?

Upgrade github.com/anchore/syft to 0.70.0 or later.

Is CVE-2023-24827 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2023-24827 exists.

Sources

Also known as GHSA-jp7v-3587-2956, GO-2023-1533.

Is CVE-2023-24827 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free