CVE-2026-34040: Docker Engine AuthZ Bypass Lets Any API Client Gain Host-Level Access — Patch to 29.3.1 Now
A CVSS 8.8 flaw in Docker Engine before 29.3.1 lets attackers silently bypass all AuthZ plugins with a single oversized API request. Successful exploitation can lead to full Kubernetes cluster takeover and SSH access to production hosts.
CVE-2026-34040 is a high-severity authorization bypass (CVSS 8.8) in Moby/Docker Engine that affects every version prior to 29.3.1. The fix shipped quietly last week. If you haven’t patched, your authorization plugins are currently decorative.
What the vulnerability does
Docker Engine passes API request bodies to AuthZ plugins before executing commands. The flaw: when a request body exceeds 1MB, the daemon silently passes an empty body to the plugin instead of the actual content — then proceeds to execute the full request anyway.
The practical result is that any client with Docker API access can issue a privileged command inside an oversized HTTP request and the AuthZ plugin will approve it unconditionally. It sees an empty body and concludes there’s nothing to block. The daemon runs the original payload in full.
No special tooling required. A single HTTP request with padding above the 1MB threshold is sufficient.
What an attacker can do with this
The blast radius depends on your Docker setup:
- Standalone hosts: mount the host filesystem, read
/etc/shadow, exfiltrate SSH keys, and establish persistence via a privileged container - Kubernetes clusters: escape into the node, access the kubelet API, and from there pivot to the entire cluster’s service account tokens
- CI/CD pipelines: inject malicious build steps, steal registry credentials, and poison artifacts going into production
The attack requires Docker API access — meaning it’s most dangerous in environments where Docker sockets are exposed to other services (common in development setups and internal CI tooling), or where multi-tenant platforms share a Docker daemon.
Affected versions
All Moby/Docker Engine versions before 29.3.1. Docker Desktop users: check your Docker Engine version inside the VM — Desktop bundles its own engine version and may lag behind.
Patch and mitigations
The primary fix is upgrading to Docker Engine 29.3.1 or later:
# Check your current version
docker version
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli
# RHEL/Fedora
sudo dnf update docker-ce
If you cannot upgrade immediately:
- Switch to rootless mode — rootless Docker eliminates host-root escalation paths even if an AuthZ plugin is bypassed
- Restrict Docker socket access — ensure
/var/run/docker.sockis only accessible to trusted processes and users - Audit who has Docker API access — remove any service or user that doesn’t strictly need it
- Use Docker socket proxies (e.g., Tecnativa’s docker-socket-proxy) to whitelist specific API endpoints
Disclosure timeline
The vulnerability was reported through responsible disclosure to the Moby security team. Docker Engine 29.3.1 was tagged as the fix release. No evidence of in-the-wild exploitation has been disclosed at the time of writing, but the simplicity of the attack makes weaponization straightforward.
Patch today. The attack surface here is your entire production infrastructure if someone gets Docker API access on a patched-behind host.
Related reading
- Cybersecurity CVE-2026-42897 (CVSS 8.1): Microsoft Exchange OWA Zero-Day Actively Exploited — No Patch Available
- Cybersecurity CVE-2026-33626: LMDeploy SSRF Exploited 13 Hours After Disclosure — Upgrade to 0.12.3 Now
- Cybersecurity CISA Adds 8 Actively Exploited Flaws to KEV, Including Three Cisco SD-WAN Zero-Days