CVE-2025-15558: Docker Desktop Docker Plugins Uncontrolled Search Path Element Local Privilege Escalation Vulnerability

Published Mar 4, 2026
·
Updated

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 29.1.5 and Windows binaries acting as a CLI-plugin manager using the github.com/docker/cli/cli-plugins/manager https://pkg.go.dev/github.com/docker/cli@v29.1.5+incompatible/cli-plugins/manager package, such as Docker Compose.

This issue does not impact non-Windows binaries, and projects not using the plugin-manager code.

Other sources

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 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

GitHub

This vulnerability allows local attackers to escalate privileges on affected installations of Docker Desktop. An attacker must first obtain the ability to execute low-privileged code on the target system in order to exploit this vulnerability. The specific flaw exists within the handling of the plugins directory path. The product executes a program from an unsecured location. An attacker can leverage this vulnerability to escalate privileges and execute arbitrary code in the context of the target user.

ZDI

Affected Software

7 affected componentsFixes available
Docker Docker CLI<=29.1.5
github.com/docker/cli/cli-plugins/manager<=29.1.5
go/github.com/docker/compose/v5<5.1.0
5.1.0
go/github.com/docker/compose/v2>=2.31.0<=2.40.3
go/github.com/docker/cli>=19.03.0<29.2.0
29.2.0
All of the following
Docker command line interface<=29.1.5
Microsoft Windows

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/docker/compose/v5 to a version that resolves this vulnerability.

    Fixed in 5.1.0
  2. Upgrade

    Upgrade go/github.com/docker/cli to a version that resolves this vulnerability.

    Fixed in 29.2.0
  3. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 29.2.0
  4. Compensating control

    On Windows, ensure the plugin discovery path C:\ProgramData\Docker\cli-plugins is not accessible for creation/modification by low-privileged users (the issue is that Docker CLI plugin binaries in C:\ProgramData\Docker\cli-plugins are executed).

  5. Operational

    If any malicious CLI plugin binaries may have been placed in C:\ProgramData\Docker\cli-plugins, remove them and verify Docker Desktop / Docker CLI plugin inventory before use after upgrading.

Event History

Mar 4, 2026
CVE Published
via MITRE·04:14 PM
Data Sourced
via MITRE·04:14 PM
DescriptionWeakness
Data Sourced
via Red Hat·05:01 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·05:16 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·05:16 PM
RemedyAffected Software
Mar 5, 2026
Advisory Published
via GitHub·12:10 AM
Data Sourced
via GitHub·12:10 AM
DescriptionWeaknessAffected Software
Mar 6, 2026
Advisory Published
via ZDI·12:00 AM
Data Sourced
via ZDI·12:00 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-15558?

CVE-2025-15558 is classified as a local privilege escalation vulnerability with low severity.

2

How do I fix CVE-2025-15558?

To remediate CVE-2025-15558, upgrade to Docker CLI version 29.2.0 or higher.

3

Who is affected by CVE-2025-15558?

CVE-2025-15558 affects Docker CLI versions up to and including 29.1.5 on Windows.

4

What can an attacker do with CVE-2025-15558?

An attacker exploiting CVE-2025-15558 could execute arbitrary code with elevated privileges by placing malicious binaries in a specific directory.

5

Is there a workaround for CVE-2025-15558?

A possible workaround for CVE-2025-15558 is to ensure the C:\ProgramData\Docker\cli-plugins directory does not exist.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203