BuildKit is a toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner. In affected versions when the user sends a build request that contains a Git URL that contains credentials and the build creates a provenance attestation describing that build, these credentials could be visible from the provenance attestation. Git URL can be passed in two ways: 1) Invoking build directly from a URL with credentials. 2) If the client sends additional version control system (VCS) info hint parameters on builds from a local source. Usually, that would mean reading the origin URL from .git/config
file. When a build is performed under specific conditions where credentials were passed to BuildKit they may be visible to everyone who has access to provenance attestation. Provenance attestations and VCS info hints were added in version v0.11.0. Previous versions are not vulnerable. In v0.10, when building directly from Git URL, the same URL could be visible in BuildInfo
structure that is a predecessor of Provenance attestations. Previous versions are not vulnerable. This bug has been fixed in v0.11.4. Users are advised to upgrade. Users unable to upgrade may disable VCS info hints by setting BUILDX_GIT_INFO=0
. buildctl
does not set VCS hints based on .git
directory, and values would need to be passed manually with --opt
.
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Buildkit | Mobyproject | 0.10.0 (including) | 0.11.4 (excluding) |
Red Hat OpenShift Container Platform 4.13 | RedHat | openshift4/ose-docker-builder:v4.13.0-202306050632.p0.gd02643e.assembly.stream | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/grafana-rhel8:2.4.4-2 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/istio-cni-rhel8:2.4.4-5 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/istio-must-gather-rhel8:2.4.4-3 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/istio-rhel8-operator:2.4.4-6 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/kiali-rhel8:1.65.9-4 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/kiali-rhel8-operator:1.65.9-1 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/pilot-rhel8:2.4.4-5 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/proxyv2-rhel8:2.4.4-5 | * |
Red Hat OpenShift Service Mesh 2.4 for RHEL 8 | RedHat | openshift-service-mesh/ratelimit-rhel8:2.4.4-2 | * |
Docker.io | Ubuntu | bionic | * |
Docker.io | Ubuntu | trusty | * |
Docker.io | Ubuntu | xenial | * |
Docker.io-app | Ubuntu | trusty | * |
There are many different kinds of mistakes that introduce information exposures. The severity of the error can range widely, depending on the context in which the product operates, the type of sensitive information that is revealed, and the benefits it may provide to an attacker. Some kinds of sensitive information include:
Information might be sensitive to different parties, each of which may have their own expectations for whether the information should be protected. These parties include:
Information exposures can occur in different ways:
It is common practice to describe any loss of confidentiality as an “information exposure,” but this can lead to overuse of CWE-200 in CWE mapping. From the CWE perspective, loss of confidentiality is a technical impact that can arise from dozens of different weaknesses, such as insecure file permissions or out-of-bounds read. CWE-200 and its lower-level descendants are intended to cover the mistakes that occur in behaviors that explicitly manage, store, transfer, or cleanse sensitive information.