CVE-2023-24827 Credential disclosure in syft when SYFT_ATTEST_PASSWORD environment variable set in syft
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.
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.
| Package | Affected | Fixed in |
|---|---|---|
github.com/anchore/syft Go | From 0.69.0 | 0.70.0 |
github.com/anchore/syft Go | From 0.69.0 | 0.70.0 |
github.com/anchore/syft Go | From 0.69.0 | 0.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.
Other vulnerabilities in anchore syft
Sources
Also known as GHSA-jp7v-3587-2956, GO-2023-1533.