Skip to main content
CVE Vulnerability Database

CVE-2025-3224: Docker Desktop Privilege Escalation Flaw

CVE-2025-3224 is a privilege escalation vulnerability in Docker Desktop for Windows that lets attackers gain SYSTEM privileges during updates. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2025-3224 Overview

CVE-2025-3224 is a local privilege escalation vulnerability in Docker Desktop for Windows versions prior to 4.41.0. The flaw resides in the update process, which deletes files and subdirectories under C:\ProgramData\Docker\config with SYSTEM privileges. Because this directory does not exist by default and C:\ProgramData\ permits standard users to create new directories, a low-privileged attacker can plant a malicious folder structure at this location. The privileged update process then acts on attacker-controlled paths, enabling arbitrary file deletion or manipulation and leading to SYSTEM-level code execution. The vulnerability is tracked under CWE-59: Improper Link Resolution Before File Access.

Critical Impact

A local, low-privileged user on a Windows host running a vulnerable Docker Desktop version can escalate to SYSTEM by abusing the privileged updater's file operations on an attacker-created directory.

Affected Products

  • Docker Desktop for Windows versions prior to 4.41.0
  • Windows endpoints where standard users can write to C:\ProgramData\
  • Systems relying on the Docker Desktop auto-update mechanism

Discovery Timeline

  • 2025-04-28 - CVE-2025-3224 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-3224

Vulnerability Analysis

The vulnerability stems from insecure file handling during the Docker Desktop update workflow on Windows. When an update runs, the privileged updater process attempts to clean the C:\ProgramData\Docker\config directory by deleting its contents recursively. This operation executes in the SYSTEM security context.

The root problem is that C:\ProgramData\Docker\config does not exist by default on many installations. The parent directory C:\ProgramData\ grants standard users the ability to create new subdirectories under default Windows ACLs. An attacker can therefore pre-create the Docker\config path and populate it with junctions, symbolic links, or files that redirect the SYSTEM-level delete operation to arbitrary locations on disk.

Arbitrary file deletion under SYSTEM is a well-documented primitive for privilege escalation on Windows, as detailed in the Zero Day Initiative research on abusing arbitrary file deletes. Attackers chain such primitives with techniques like the Windows Installer rollback to obtain a SYSTEM shell.

Root Cause

The underlying weakness is improper link resolution before file access [CWE-59]. The updater does not validate whether the target directory or its contents are symbolic links, junctions, or otherwise attacker-controlled prior to performing privileged file deletions. Combined with permissive ACLs on C:\ProgramData\, this creates a classic planted-path privilege escalation condition.

Attack Vector

Exploitation requires local access with low privileges and user interaction, since the update process must be triggered. An attacker first creates the C:\ProgramData\Docker\config directory and inserts a junction pointing to a sensitive location such as a directory containing a privileged service binary. When Docker Desktop performs an update, the SYSTEM-level cleanup operation follows the junction and deletes or manipulates files outside the intended directory. The attacker then leverages the resulting arbitrary file operation primitive to escalate to SYSTEM.

No public proof-of-concept exploit is currently available for CVE-2025-3224, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog.

Detection Methods for CVE-2025-3224

Indicators of Compromise

  • Unexpected creation of C:\ProgramData\Docker\config by a non-Docker process or standard user account
  • Presence of NTFS junctions, symbolic links, or reparse points within C:\ProgramData\Docker\config
  • File deletions performed by the Docker Desktop updater process affecting paths outside the Docker installation tree
  • New or modified privileged service binaries or DLLs following a Docker Desktop update event

Detection Strategies

  • Monitor file system events under C:\ProgramData\Docker\ for directory creation by non-installer users
  • Alert on reparse point creation in C:\ProgramData\ subdirectories using Sysmon Event ID 11 and 15
  • Correlate Docker Desktop updater process activity with file deletions in system directories such as C:\Windows\System32\
  • Baseline the installed Docker Desktop version across the fleet and flag hosts running versions below 4.41.0

Monitoring Recommendations

  • Enable Windows Security auditing for object access on C:\ProgramData\Docker\ and forward events to a centralized log platform
  • Track process lineage where the Docker Desktop updater spawns from SYSTEM and performs file operations outside its expected working directories
  • Review endpoint telemetry for privilege escalation patterns following software update events

How to Mitigate CVE-2025-3224

Immediate Actions Required

  • Upgrade Docker Desktop for Windows to version 4.41.0 or later on all affected endpoints
  • Inventory Windows hosts running Docker Desktop and prioritize systems with multiple interactive users
  • Inspect C:\ProgramData\Docker\config on each host for unexpected content, junctions, or reparse points and remove suspicious entries
  • Restrict local logon rights on developer workstations to limit exposure to local attackers

Patch Information

Docker resolved this issue in Docker Desktop for Windows 4.41.0. Administrators should download the latest installer from Docker and deploy it through their standard software distribution channels. Verify the installed version by running docker version or checking the Docker Desktop About dialog after the upgrade completes.

Workarounds

  • Pre-create C:\ProgramData\Docker\config as an administrator and apply an ACL that denies write access to standard users
  • Disable the automatic update feature and perform updates manually under controlled administrative sessions until patching is complete
  • Apply application allowlisting to prevent unauthorized processes from placing files under C:\ProgramData\Docker\
bash
# Configuration example: pre-create and lock down the target directory
mkdir C:\ProgramData\Docker\config
icacls C:\ProgramData\Docker\config /inheritance:r
icacls C:\ProgramData\Docker\config /grant:r "SYSTEM:(OI)(CI)F" "Administrators:(OI)(CI)F"
icacls C:\ProgramData\Docker\config /deny "Users:(OI)(CI)(W,DC,DE)"

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.