Vulnerabilities in pkg:golang/github.com/docker/cli

PACKAGE
Advisory Identifier: GHSA-p436-gjf2-799p
Advisory Summary

CVE-2025-15558 is a HIGH uncontrolled search path element leads vulnerability (CWE-427: Uncontrolled Search Path Element) affecting Docker CLI Plugins libraries in the Go ecosystem. The issue involves uncontrolled search path element leads to local privilege escalation on windows. Remediation is available by upgrading affected packages to version 29.2.0.

2 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:golang/github.com/docker/cli

2 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:golang/github.com/docker/cli. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-p436-gjf2-799p CVE-2025-15558 HIGH Docker CLI Plugins: Uncontrolled Search Path Element Leads to Local Privilege Escalation on Windows
GHSA-99pg-grm5-qq3v CVE-2021-41092 MODERATE Docker CLI leaks private registry credentials to registry-1.docker.io

CVE-2025-15558 at a Glance

CVE Identifier CVE-2025-15558
GHSA Identifier GHSA-p436-gjf2-799p
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-427: Uncontrolled Search Path Element
Affected Product Docker CLI Plugins
Package Ecosystem Go
Published Date
Last Updated

How to Fix CVE-2025-15558

To remediate this vulnerability, upgrade all affected Docker CLI Plugins dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/docker/cli fixed: 29.2.0
Upgrade github.com/docker/cli to 29.2.0
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/docker/cli

How to Check if You Are Affected

To determine whether your application is affected by CVE-2025-15558, inspect your project dependencies for Docker CLI Plugins:

inspect dependencies for github.com/docker/cli

Analyze the terminal output to locate any version of Docker CLI Plugins in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 29.2.0), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-427: Uncontrolled Search Path Element, where the product uses a fixed or controlled search path to find resources, but one or more locations in that path can be under the control of unintended actors. In Docker CLI Plugins, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

This issue affects Docker CLI through 29.1.5 ### Impact Docker CLI for Windows searches for plugin binaries in `C:\ProgramData\Docker\cli-plugins`, a directory that does not exist by default. A low-privileged attacker can create this directory and place malicious CLI plugin binaries (docker-compose.exe, docker-buildx.exe, etc.) that are executed when a victim user opens Docker Desktop or invokes Docker CLI plugin features, and allow privilege-escalation if the `docker` CLI is executed as a privileged user. This issue affects Docker CLI through v29.1.5 (fixed in v29.2.0). It impacts Windows binaries acting as a CLI plugin manager via the [`github.com/docker/cli/cli-plugins/manager`](https://pkg.go.dev/github.com/docker/cli@v29.1.5+incompatible/cli-plugins/manager) package, which is consumed by downstream projects such as Docker Compose. Docker Compose became affected starting in v2.31.0, when it incorporated the relevant CLI plugin manager code (see https://github.com/docker/compose/pull/12300), and is fixed in v5.1.0. This issue does not impact non-Windows binaries or projects that do not use the plugin manager code. ### Patches Fixed version starts with 29.2.0 This issue was fixed in https://github.com/docker/cli/commit/13759330b1f7e7cb0d67047ea42c5482548ba7fa (https://github.com/docker/cli/pull/6713), which removed `%PROGRAMDATA%\Docker\cli-plugins` from the list of paths used for plugin-discovery on Windows. ### Workarounds None ### Resources - Pull request: "cli-plugins/manager: remove legacy system-wide cli-plugin path" (https://github.com/docker/cli/pull/6713) - Patch: https://github.com/docker/cli/commit/13759330b1f7e7cb0d67047ea42c5482548ba7fa.patch ### Credits Nitesh Surana (niteshsurana.com) of Trend Research of TrendAI

CVE-2025-15558 Affected Docker CLI Plugins Versions

1 component(s)
Fixed Versions:
29.2.0
Product / Package Ecosystem Affected Versions Fixed Version
github.com/docker/cli
Go
≥ 19.03.0
< 29.2.0
29.2.0

References

Frequently Asked Questions

What is CVE-2025-15558?
CVE-2025-15558 is a security vulnerability in Docker CLI Plugins involving Uncontrolled Search Path Element Leads to Local Privilege Escalation on Windows under CWE-427: Uncontrolled Search Path Element.
Which Docker CLI Plugins versions are affected?
Affected versions include releases prior to 29.2.0 across affected packages: github.com/docker/cli.
What version fixes CVE-2025-15558?
Upgrading to 29.2.0 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/docker/cli affected?
Yes, github.com/docker/cli is affected in releases prior to 29.2.0. Upgrade your dependency to 29.2.0 or later.
What CWE is associated with CVE-2025-15558?
CVE-2025-15558 is classified under CWE-427: Uncontrolled Search Path Element (The product uses a fixed or controlled search path to find resources, but one or more locations in that path can be under the control of unintended actors.).
How can I check Go dependencies for CVE-2025-15558?
Run the dependency tree command: 'inspect dependencies for github.com/docker/cli'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-p436-gjf2-799p",
  "modified" : "2026-03-31T14:21:14Z",
  "published" : "2026-03-05T00:10:40Z",
  "aliases" : [ "CVE-2025-15558" ],
  "summary" : "Docker CLI Plugins: Uncontrolled Search Path Element Leads to Local Privilege Escalation on Windows",
  "details" : "This issue affects Docker CLI through 29.1.5\n\n### Impact\n\nDocker CLI for Windows searches for plugin binaries in `C:\\ProgramData\\Docker\\cli-plugins`, a directory that does not exist by default. A low-privileged attacker can create this directory and place malicious CLI plugin binaries (docker-compose.exe, docker-buildx.exe, etc.) that are executed when a victim user opens Docker Desktop or invokes Docker CLI plugin features, and allow privilege-escalation if the `docker` CLI is executed as a privileged user.\n\nThis issue affects Docker CLI through v29.1.5 (fixed in v29.2.0). It impacts Windows binaries acting as a CLI plugin manager via the [`github.com/docker/cli/cli-plugins/manager`](https://pkg.go.dev/github.com/docker/cli@v29.1.5+incompatible/cli-plugins/manager) package, which is consumed by downstream projects such as Docker Compose.\n\nDocker Compose became affected starting in v2.31.0, when it incorporated the relevant CLI plugin manager code (see https://github.com/docker/compose/pull/12300), and is fixed in v5.1.0.\n\nThis issue does not impact non-Windows binaries or projects that do not use the plugin manager code.\n\n### Patches\n\nFixed version starts with 29.2.0\n\nThis issue was fixed in https://github.com/docker/cli/commit/13759330b1f7e7cb0d67047ea42c5482548ba7fa (https://github.com/docker/cli/pull/6713), which removed `%PROGRAMDATA%\\Docker\\cli-plugins` from the list of paths used for plugin-discovery on Windows.\n\n### Workarounds\n\nNone\n\n### Resources\n\n- Pull request: \"cli-plugins/manager: remove legacy system-wide cli-plugin path\" (https://github.com/docker/cli/pull/6713)\n- Patch: https://github.com/docker/cli/commit/13759330b1f7e7cb0d67047ea42c5482548ba7fa.patch\n\n### Credits\n\nNitesh Surana (niteshsurana.com) of Trend Research of TrendAI",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/docker/cli"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "19.03.0"
      }, {
        "fixed" : "29.2.0"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/docker/cli/security/advisories/GHSA-p436-gjf2-799p"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-15558"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/docker/cli/pull/6713"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/docker/compose/pull/12300"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/docker/cli/commit/13759330b1f7e7cb0d67047ea42c5482548ba7fa"
  }, {
    "type" : "WEB",
    "url" : "https://docs.docker.com/desktop/release-notes"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/docker/cli"
  }, {
    "type" : "WEB",
    "url" : "https://www.zerodayinitiative.com/advisories/ZDI-CAN-28304"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-427" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-03-05T00:10:40Z",
    "nvd_published_at" : "2026-03-04T17:16:14Z"
  }
}