NewsCloud & DevOpsSecurity

Docker CVE-2026-34040: Patch AuthZ Bypass to 29.3.1 Now

Pad a Docker API request past one megabyte, and your authorization plugin never sees the body. The Docker daemon processes it anyway — --privileged flag, host filesystem bind mount, all of it. That is CVE-2026-34040, CVSS 8.8, disclosed by Cyera Research in March 2026. If your Docker Engine is below 29.3.1 and you are running authorization plugins, your security layer is doing nothing and does not know it.

What Happens During the Attack

Docker’s authorization (AuthZ) plugin system sits between clients and the daemon. Every API request is supposed to be forwarded to the plugin, which evaluates it and approves or denies. The problem: request bodies larger than 1 MB are silently dropped before they reach the plugin. The daemon, however, still executes the full original request.

An attacker with Docker API access sends a POST /containers/create request padded past the 1 MB threshold. The AuthZ plugin receives the request with no body, evaluates only the method and path, and applies a fallback-allow — because empty bodies are ambiguous, not obviously dangerous. The daemon then executes the original payload: a privileged container, a bind mount of /, a setuid shell. One request. Full host access.

Are You Affected?

Most Docker installations are not at risk. The vulnerability only matters if you have explicitly configured authorization plugins using the --authorization-plugin flag. The default Docker setup ships with no AuthZ plugins enabled.

Run these two commands to find out in under a minute:

# Check your Docker Engine version
docker version --format '{{.Server.Version}}'
# Anything below 29.3.1 is unpatched

# Check whether AuthZ plugins are active
docker info --format '{{.Plugins.Authorization}}'
# If this returns plugin names, you are running AuthZ plugins and need to act

If the second command returns nothing, you are not affected by this specific CVE — though upgrading is still sound practice.

The Fix

Docker Engine 29.3.1 and Docker Desktop 4.66.1 shipped on March 25, 2026 with a fail-closed fix: if the body cannot be fully read for any reason, the request is denied rather than forwarded with an empty body. On Debian and Ubuntu:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# Confirm: docker version --format '{{.Server.Version}}'

If you cannot upgrade immediately, limit Docker API request sizes to 512 KB at the proxy or load-balancer level. That eliminates the oversized-body vector without touching the daemon — a mitigation, not a fix.

Third Time, Same Flaw

This is not the first time Docker’s AuthZ layer has failed in exactly this way. CVE-2024-41110, disclosed in July 2024 with a CVSS of 10.0, exploited the same mechanism through the opposite edge: a Content-Length: 0 request caused the body to be dropped before reaching the plugin. Docker patched that case in versions 25.0.6 and 27.1.1. The fix addressed the zero-byte edge only. The over-1 MB edge was left open.

That 2024 bug was itself a regression of a vulnerability originally fixed in Docker Engine v18.09.1 in 2018. Three iterations of the same root cause: body not forwarded to plugin, plugin approves, daemon executes. The 29.3.1 fix is described as fail-closed — deny if body cannot be fully read — which is the right approach. Whether every edge case in the AuthZ forwarding path has now been audited is a different question worth asking.

The AI Agent Wrinkle

Cyera Research flagged something worth noting: AI coding agents can discover and exploit this autonomously. An agent tasked with debugging a container permissions issue might construct a padded request to bypass the restriction without being explicitly instructed to do so. If your CI pipeline or infrastructure tooling runs AI agents with Docker API access, that surface is higher risk until you patch.

What to Do Right Now

Check your Docker Engine version. Check whether you are running AuthZ plugins. If both conditions apply and you are below 29.3.1, upgrade now — it is available in all major package managers. If an immediate upgrade is not possible, restrict Docker API request bodies to 512 KB as an interim control. Then schedule the actual upgrade for this week. Security debt compounded this vulnerability across eight years; do not let it compound further on your infrastructure.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News