CVE-2025-0495
NoneCVSS
—
EPSS
0.2%
Published
Mar 17, 2025
CISA due date
—
Cloudanix analysis
A Docker build tool can accidentally store secret credentials in its log and history files where others might see them.
- Exploitation
- Requires User Interaction
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Secrets supplied directly as attribute values in cache-to or cache-from configurations are captured verbatim in OpenTelemetry trace arguments and persisted in BuildKit daemon history records.
Why it matters to the business
Build credentials or tokens may be exposed in trace data or daemon history, increasing risk of unauthorized access to build caches or dependent services; urgency is low given the absence of known exploitation and limited affected packages.
How an attack unfolds
An attacker with local access supplies cache configuration containing secrets via the CLI; the values are recorded in OpenTelemetry traces and BuildKit history where they can later be retrieved by inspecting those records.
How to fix it
Upgrade affected Chainguard packages to the fixed versions: py3.11-torchvision-cuda-11.8 to 0.18.1-r3 and py3.11-wheels-torchvision-cuda-11.8 to 0.18.1-r3. Prefer passing secrets via environment variables or registry authentication for the GitHub cache backend.
How to confirm the fix worked
Verify package versions match the fixed releases, review build configurations to ensure secrets are not supplied as inline attributes, and confirm OpenTelemetry exporters and BuildKit history do not contain test secret values after builds.
Typical attack path
- Obtain local access to a system running Buildx with cache backends configured via attributes
- Invoke build commands that include secret values directly in cache-to or cache-from flags
- Access resulting OpenTelemetry traces or query BuildKit daemon history to extract the captured secrets
How to detect it
Inspect OpenTelemetry trace exports and BuildKit daemon history records for strings matching cache attribute patterns that contain credential-like values; review CLI command arguments logged during builds.
What your security team should do
- Apply the listed package upgrades immediately on all affected Chainguard images
- Audit existing build pipelines and CI configurations for inline secret attributes in cache settings
- Update build documentation to mandate environment-variable or registry-auth secret handling
- Monitor OpenTelemetry collection points and BuildKit history retention policies for sensitive data
The record
Buildx is a Docker CLI plugin that extends build capabilities using BuildKit. Cache backends support credentials by setting secrets directly as attribute values in cache-to/cache-from configuration. When supplied as user input, these secure values may be inadvertently captured in OpenTelemetry traces as part of the arguments and flags for the traced CLI command. OpenTelemetry traces are also saved in BuildKit daemon's history records. This vulnerability does not impact secrets passed to the Github cache backend via environment variables or registry authentication.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/docker/buildx | 0 | 0.21.3 |
| Chainguard | docker-compose | 0 | 2.34.0-r1 |
| Chainguard | docker-compose-fips | 0 | 2.34.0-r2 |
| Chainguard | kubescape | 0 | 3.0.43-r0 |
| Debian:13 | docker-buildx | 0 | No fix |
| Debian:14 | docker-buildx | 0 | 0.13.1+ds1-3 |
| SUSE:Linux Enterprise Micro 5.1 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Micro 5.2 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Micro 5.3 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Micro 5.4 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Micro 5.5 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Module for Containers 15 SP6 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Module for Containers 15 SP6 | docker-stable | 0 | 24.0.9_ce-150000.1.22.1 |
| SUSE:Linux Enterprise Module for Containers 15 SP7 | docker | 0 | 28.2.2_ce-150000.227.1 |
| SUSE:Linux Enterprise Module for Containers 15 SP7 | docker-stable | 0 | 24.0.9_ce-150000.1.22.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | docker | 0 | 27.5.1_ce-98.129.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | docker-stable | 0 | 24.0.9_ce-1.14.1 |
| Wolfi | docker-compose | 0 | 2.34.0-r1 |
| Wolfi | kubescape | 0 | 3.0.43-r0 |
| openSUSE:Leap 15.6 | docker | 0 | 28.2.2_ce-150000.227.1 |
| openSUSE:Leap 15.6 | docker-stable | 0 | 24.0.9_ce-150000.1.22.1 |
| openSUSE:Tumbleweed | docker | 0 | 27.5.1_ce-15.1 |
| openSUSE:Tumbleweed | docker-stable | 0 | 24.0.9_ce-9.1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250318T181448-1.1 |
Related vulnerabilities
- CVE-2026-33748 BuildKit is a toolkit for converting source code to build artifacts in an efficient… Also affects docker-compose
- CVE-2026-33747 BuildKit is a toolkit for converting source code to build artifacts in an efficient… Also affects docker-compose
- CVE-2026-24137 sigstore framework is a common go library shared across sigstore services and clients. Also affects docker-compose
- CVE-2025-64329 containerd CRI server: Host memory exhaustion through Attach goroutine leak Also affects docker-compose
- CVE-2024-25621 containerd affected by a local privilege escalation via wide permissions on CRI directory Also affects docker-compose
- CVE-2025-54388 Moby firewalld reload makes published container ports accessible from remote hosts Also affects docker-compose
- CVE-2024-40635 containerd is an open-source container runtime. Also affects docker-compose
- CVE-2024-41110 Moby is an open-source project created by Docker for software containerization. Also affects docker-compose