I've been debugging Docker issues for years, but nothing prepared me for the shitshow that is CVE-2025-9074. Fixed in Docker Desktop 4.44.3 back in July, this vulnerability basically means any container could talk directly to your Docker daemon and do whatever the hell it wanted.
CVE-2025-9074: Any Container Can Own Your Machine
Here's what actually happened: Docker Desktop was exposing the Docker Engine API at 192.168.65.7:2375
to any container that wanted to chat with it. Doesn't matter if you had Enhanced Container Isolation turned on, doesn't matter if you never explicitly exposed the daemon - it was there, waiting.
I found this out the hard way when a seemingly innocent Node.js container I was testing suddenly had access to create new containers with --privileged
flags. The container could mount my entire host filesystem with something like:
docker run --privileged -v /:/host alpine sh
And boom - game over. The "isolated" container now had root access to everything on my MacBook. Database credentials, SSH keys, browser passwords, crypto wallets - all sitting there like a buffet.
The worst part? This worked even if you never mounted the Docker socket. The attack uses Docker's internal networking to reach the API, so all those security best practices about "never mount /var/run/docker.sock
" became completely irrelevant.
CVE-2025-3224: Windows Update Process Goes YOLO
The second vulnerability, CVE-2025-3224, was fixed back in April in Docker Desktop 4.41.0. This one's Windows-specific and hits during updates - Docker Desktop would delete files with elevated privileges without properly validating what it was actually deleting.
An attacker could create symbolic links or junction points in C:\ProgramData\Docker\config
that redirected the deletion to critical system files. When Docker Desktop tried to "clean up" during an update, it would happily nuke whatever the attacker pointed it at, potentially giving them SYSTEM-level access.
This is the kind of bug that makes you wonder if anyone actually tested the update process. The irony is thick - the mechanism designed to keep you secure became the attack vector. If your org has automated Docker Desktop updates (and let's be honest, who doesn't), you were basically playing update roulette every time a new version dropped.
Why This Shit Matters in the Real World
The Docker daemon runs as root. Always has. This isn't news, but when that daemon becomes accessible from inside containers, your entire "container isolation" model falls apart like a house of cards.
I've seen this play out in production. A team was running some file processing service - users could upload images for resizing or whatever. Pretty standard setup following the usual security best practices.
Then someone uploaded some malicious image - I think it was exploiting ImageMagick or something similar - and got shell access inside the container. This should've been fine, right? Container isolation and all that bullshit.
But with CVE-2025-9074, that shell access meant the attacker could just hit 192.168.65.7:2375
from inside the container and talk directly to Docker. Created a privileged container, mounted the host filesystem, and boom - game over.
The whole thing was a complete clusterfuck. By the time anyone noticed weird container creation activity, the attacker had already grabbed database credentials from some .env file that shouldn't have been in prod but was there because someone needed to "test something quickly" six months ago. Whole thing took maybe 20 minutes from container escape to data exfil? Hard to tell because our monitoring was shit and half the logs were missing.
Detection is Fucking Hard
Most monitoring tools watch containers from the outside - CPU usage, memory consumption, network traffic to external hosts. They don't watch the Docker daemon itself because, well, that's supposed to be isolated from containers.
CVE-2025-9074 attacks look like normal Docker operations. The API calls use legitimate commands, the network traffic stays within Docker's internal subnet (192.168.65.0/24
), and the container creation requests look like typical orchestration activity.
Unless you're specifically monitoring the Docker daemon logs for unusual container creation patterns from internal sources, these attacks are nearly invisible. Tools like Falco can help, but most orgs don't have proper runtime security monitoring in place. By the time you notice a privileged container you didn't create using docker ps
, the damage is already done.