Docker Engine 29.7.1 → 29.9.2
7 releases · 0 breaking changes · 29 security fixes · 1 advisory fixed
29security0breaking0deprecated6feature54fix
Vulnerabilities fixed by this upgrade
- 7.6 CVE-2026-92543 Docker Engine insecure-registry fallback via malicious DNS responses
Breaking changes
None in the release notes.
Security changes
- security The Go runtime update addresses CVE-2026-111943 by rejecting certificate chains that include eight revoked eMudhra intermediate certificates. Image pulls and pushes fail TLS certificate verification if a registry's certificate chain relies on one of the affected TLS intermediates. Affected… in 29.9.2
- security Domain-validated TLS: EM DV TLS CA - G3B and EM DV TLS CA - G3C in 29.9.2
- security Organization-validated TLS: EM OV TLS CA - G3B and EM OV TLS CA - G3C in 29.9.2
- security Extended-validation TLS: EM EV TLS CA - G3B and EM EV TLS CA - G3C in 29.9.2
- security Code signing: EM OV CS CA - G3B and EM OV CS CA - G3C in 29.9.2
- security CVE-2026-95839: Pulling or importing an image through containerd's transfer service could crash containerd if a child descriptor contained the io.containerd.manifest.subject annotation and a malformed digest. in 29.9.1
- security GHSA-8647-2jxj-p2rc: An untrusted registry returning a crafted Content-Length header could crash containerd when parallel layer fetching was enabled with concurrent_layer_fetch_buffer. in 29.9.1
- security GHSA-hc94-p972-ch66: Pulling a crafted image or pulling from a malicious registry could exhaust host disk space because containerd did not limit incoming layer data to the declared size before validation. in 29.9.1
- security CVE-2026-97032: An HTTP/2 client could crash the daemon by changing the HPACK header table size while sending requests. golang/go#81867 in 29.9.0
- security CVE-2026-78659: An HTTP/2 client could exhaust daemon memory by declaring a large number of fields in a Trailer header, bypassing the header size limits. golang/go#81857 in 29.9.0
- security CVE-2026-78663: An HTTP/2 client could bypass the connection-level flow control limit by resetting streams, making the daemon buffer more request data than the limit allows. golang/go#81743 in 29.9.0
- security CVE-2026-78669: An HTTP/2 client could cause excessive daemon CPU use by opening many streams and repeatedly changing the initial window size. golang/go#81742 in 29.9.0
- security CVE-2026-56857: On Windows, the daemon could create a directory outside its data root if someone with write access to the data root had placed a junction there. golang/go#81739 in 29.9.0
- security Release a node's IPsec security associations and policies when the last container leaves an encrypted overlay network, instead of leaking them until the daemon restarts. moby/moby#53420 in 29.9.0
- security CVE-2026-53493: Pulling a crafted OCI image index with deeply nested or widely fanned-out descriptors could cause unbounded CPU and memory use. GHSA-pg57-6jwg-q645 in 29.8.2
- security CVE-2026-92543: A malicious DNS response could make registry connections skip TLS certificate verification or fall back to HTTP, exposing registry credentials or allowing image substitution. GHSA-7cfq-22r6-qp73 in 29.8.2
- security CVE-2026-92542: Unprivileged users on a Swarm node could inject forged Ethernet frames into encrypted overlay networks on peer nodes. GHSA-6m9p-4h64-m6vh in 29.8.2
- security CVE-2026-93315: A build step could redirect proxy CA cleanup outside the build root filesystem, block it with a special file, or let the build succeed when cleanup failed. GHSA-2f5p-x9ph-g97x in 29.8.2
- security CVE-2026-93316: A build that requested CDI devices could cause a daemon panic when CDI support was disabled, for example with "features": {"cdi": false} in daemon.json. GHSA-r456-g3gm-cvxf in 29.8.2
- security CVE-2026-93317: With the containerd image store, a client using the low-level LLB API could poison the build cache with container blob contents that did not match their claimed digest. GHSA-p3rc-w3hc-pqvv in 29.8.2
- security CVE-2026-93318: A malicious image could poison the build cache with layer DiffIDs that did not match the actual layer contents. GHSA-f2v9-hprr-32q3 in 29.8.2
- security CVE-2026-93319: A malicious external frontend could crash the daemon through gateway container lifecycle races or malformed requests and definitions. GHSA-4hgw-qrhw-fhg8 in 29.8.2
- security CVE-2026-93320: Daemon-side snapshot reads and LLB mkfile operations did not safely handle special files. GHSA-9728-qjrv-2xh2 in 29.8.2
- security CVE-2026-93321: A malformed LLB file operation with invalid symlink owner inputs could crash the daemon. GHSA-fjj4-h6vf-m9hj in 29.8.2
- security CVE-2026-93322: A malformed LLB merge operation with mismatched input counts could crash the daemon. GHSA-cv6p-7w7g-xjwq in 29.8.2
- security CVE-2026-93323: An oversized Dockerfile, .dockerignore, gateway file, or nested LLB definition could exhaust daemon memory. GHSA-mgqf-486f-49vp in 29.8.2
- security CVE-2026-93326: A crafted Git build source could bypass source policy rules that match on the repository URL, through a Git bundle locator or a full remote URL that did not match the source identifier. GHSA-66hf-6vf5-87hc in 29.8.2
- security Add daemon support for configuring the default container AppArmor profile template. moby/moby#52771 in 29.8.0
- security Prevent containers from using the 32-bit socketcall(2) path to create AF_VSOCK sockets and communicate with host virtual machines by adding AppArmor and SELinux policy rules. moby/moby#53551 in 29.8.0
Every release in between
otherdocker/cli, 29.9.2 milestone
othermoby/moby, 29.9.2 milestone
securityThe Go runtime update addresses CVE-2026-111943 by rejecting certificate chains that include eight revoked eMudhra intermediate certificates. Image pulls and pushes fail TLS certificate verification if a registry's certificate chain relies on one of the affected TLS intermediates. Affected…
securityDomain-validated TLS: EM DV TLS CA - G3B and EM DV TLS CA - G3C
securityOrganization-validated TLS: EM OV TLS CA - G3B and EM OV TLS CA - G3C
securityExtended-validation TLS: EM EV TLS CA - G3B and EM EV TLS CA - G3C
securityCode signing: EM OV CS CA - G3B and EM OV CS CA - G3C
otherUpdate Go runtime to 1.26.10. moby/moby#53989, docker/cli#7418
otherdocker/cli, 29.9.1 milestone
othermoby/moby, 29.9.1 milestone
securityCVE-2026-95839: Pulling or importing an image through containerd's transfer service could crash containerd if a child descriptor contained the io.containerd.manifest.subject annotation and a malformed digest.
securityGHSA-8647-2jxj-p2rc: An untrusted registry returning a crafted Content-Length header could crash containerd when parallel layer fetching was enabled with concurrent_layer_fetch_buffer.
securityGHSA-hc94-p972-ch66: Pulling a crafted image or pulling from a malicious registry could exhaust host disk space because containerd did not limit incoming layer data to the declared size before validation.
fixFix --link-local-ip accepting addresses that are not link-local (169.254.0.0/16 or fe80::/10) when creating a container or connecting it to a network, which made the container fail to start. moby/moby#53923
fixFix COPY --from in the classic builder failing for files not owned by root when userns-remap is enabled. moby/moby#53859
fixFix docker ps -s and container listing with sizes failing entirely when the size of one container cannot be computed. moby/moby#53921
fixFix docker save leaving image layers on disk after the image is removed, when the image contains the same layer more than once (graph-driver image store). moby/moby#53927
fixFix a daemon panic when using the fluentd log driver with a TLS address that cannot be connected to and fluentd-async enabled. moby/moby#53922
fixFix image digest resolution failing when a registry mirror succeeds but a subsequent registry lookup fails. moby/moby#53933
fixFix plugin privilege lookup reporting success when fetching the plugin fails. moby/moby#53934
otherUpdate containerd (static binaries) to v2.4.2. moby/moby#53936
featureDon't add bridge network interfaces to firewalld's docker zone when iptables and ip6tables are both disabled. moby/moby#53907
fixFix bridge networks failing to restore on daemon startup when their bridge is bound to a firewalld zone other than docker. moby/moby#53907
fixFix --domainname with user namespaces and rootless mode; this requires an OCI runtime supporting the domainname field (such as runc >= v1.2.0). moby/moby#53899
otherUpdate RootlessKit to v3.3.0. moby/moby#53942
otherdocker/cli, 29.9.0 milestone
othermoby/moby, 29.9.0 milestone
securityCVE-2026-97032: An HTTP/2 client could crash the daemon by changing the HPACK header table size while sending requests. golang/go#81867
securityCVE-2026-78659: An HTTP/2 client could exhaust daemon memory by declaring a large number of fields in a Trailer header, bypassing the header size limits. golang/go#81857
securityCVE-2026-78663: An HTTP/2 client could bypass the connection-level flow control limit by resetting streams, making the daemon buffer more request data than the limit allows. golang/go#81743
securityCVE-2026-78669: An HTTP/2 client could cause excessive daemon CPU use by opening many streams and repeatedly changing the initial window size. golang/go#81742
securityCVE-2026-56857: On Windows, the daemon could create a directory outside its data root if someone with write access to the data root had placed a junction there. golang/go#81739
fixcontainerd image store: Add the lazy-pull daemon feature to control whether docker pull skips downloading layer content that the snapshotter already provides. Lazy pulls are enabled by default for known remote snapshotters (nydus, overlaybd, soci, stargz). moby/moby#53877
fixcontainerd image store: Fix pulls skipping required layer blobs when unpacked layers already exist, leaving images runnable but incomplete for export or push. moby/moby#53615
fixFix docker container create --name reporting a misleading validation error mentioning invalid characters instead of invalid name length. moby/moby#53484
fixFix a connection leak to the RootlessKit API socket on every GET /version request in rootless mode. moby/moby#53836
fixImprove Windows service registration and unregistration cleanup, including making service unregistration (--unregister-service) idempotent. moby/moby#53845
otherUpdate BuildKit to v0.34.0. moby/moby#53882
otherUpdate Go runtime to 1.26.9. docker/cli#7363
otherUpdate containerd (static binaries) to v2.4.1. moby/moby#53773
featureAllow IPv6 Neighbour Discovery between containers on a bridge network with inter-container communication disabled, matching the existing IPv4 behaviour. moby/moby#53723
fixFix docker ps and GET /containers/json omitting published ports for networks using routed gateway mode. moby/moby#53693
fixFix a bug where a restarted daemon could be dropped from a peer's service discovery and load balancing until it rejoined the gossip cluster. moby/moby#53688
fixFix a published port being unreachable from another container on the same network when inter-container communication is disabled, including Swarm services published through the routing mesh. moby/moby#53723
fixFix an issue where errors programming the kernel to encrypt the overlay network data-plane could in some circumstances lead to encrypted-overlay-network traffic to some nodes being transmitted in cleartext. As the receiving peer would drop cleartext packets for encrypted overlay networks as…
fixFix connecting live-restored containers with an implicit host-gateway mapping to additional networks. moby/moby#53093
fixFix overlay peers becoming unreachable after a node rejoins the cluster or a service is redeployed, when the VXLAN device had already learned a dynamic FDB entry for the peer. moby/moby#53663
fixFix Swarm tasks on overlay networks being rejected when the daemon can't write to /var/lib/docker. moby/moby#53848
featurePublished Swarm-service ports are accessible at the host's IPv6 addresses when the userland proxy is enabled. A change introduced in v29.8.0 incidentally enabled this functionality; it is a tested and supported feature as of v29.9.0. moby/moby#53727
securityRelease a node's IPsec security associations and policies when the last container leaves an encrypted overlay network, instead of leaking them until the daemon restarts. moby/moby#53420
otherRestore the logic to remove the empty DOCKER-INGRESS iptables chain, and the FORWARD rule that jumps to it, left behind by Docker Engine 28.0.0 and earlier. moby/moby#53825
otherUpdate RootlessKit (3.2.0). moby/moby#53607
otherdocker/cli, 29.8.2 milestone
othermoby/moby, 29.8.2 milestone
securityCVE-2026-53493: Pulling a crafted OCI image index with deeply nested or widely fanned-out descriptors could cause unbounded CPU and memory use. GHSA-pg57-6jwg-q645
securityCVE-2026-92543: A malicious DNS response could make registry connections skip TLS certificate verification or fall back to HTTP, exposing registry credentials or allowing image substitution. GHSA-7cfq-22r6-qp73
securityCVE-2026-92542: Unprivileged users on a Swarm node could inject forged Ethernet frames into encrypted overlay networks on peer nodes. GHSA-6m9p-4h64-m6vh
securityCVE-2026-93315: A build step could redirect proxy CA cleanup outside the build root filesystem, block it with a special file, or let the build succeed when cleanup failed. GHSA-2f5p-x9ph-g97x
securityCVE-2026-93316: A build that requested CDI devices could cause a daemon panic when CDI support was disabled, for example with "features": {"cdi": false} in daemon.json. GHSA-r456-g3gm-cvxf
securityCVE-2026-93317: With the containerd image store, a client using the low-level LLB API could poison the build cache with container blob contents that did not match their claimed digest. GHSA-p3rc-w3hc-pqvv
securityCVE-2026-93318: A malicious image could poison the build cache with layer DiffIDs that did not match the actual layer contents. GHSA-f2v9-hprr-32q3
securityCVE-2026-93319: A malicious external frontend could crash the daemon through gateway container lifecycle races or malformed requests and definitions. GHSA-4hgw-qrhw-fhg8
securityCVE-2026-93320: Daemon-side snapshot reads and LLB mkfile operations did not safely handle special files. GHSA-9728-qjrv-2xh2
securityCVE-2026-93321: A malformed LLB file operation with invalid symlink owner inputs could crash the daemon. GHSA-fjj4-h6vf-m9hj
securityCVE-2026-93322: A malformed LLB merge operation with mismatched input counts could crash the daemon. GHSA-cv6p-7w7g-xjwq
securityCVE-2026-93323: An oversized Dockerfile, .dockerignore, gateway file, or nested LLB definition could exhaust daemon memory. GHSA-mgqf-486f-49vp
securityCVE-2026-93326: A crafted Git build source could bypass source policy rules that match on the repository URL, through a Git bundle locator or a full remote URL that did not match the source identifier. GHSA-66hf-6vf5-87hc
fixFix docker cp failing on a container with a bind-mounted socket nested inside another bind mount. moby/moby#53724
fixFix docker info failing with an “invalid Prefix” error after reloading a daemon with custom default address pools. moby/moby#53812
otherUpdate BuildKit to v0.33.1. moby/moby#53823
otherUpdate containerd (static binaries) to v2.3.6. moby/moby#53778
otherUpdate runc (in static binaries) to v1.5.2. moby/moby#53811
otherdocker/cli, 29.8.1 milestone
othermoby/moby, 29.8.1 milestone
fixcontainerd image store: Fix docker load leaving dangling images after loading an image that already exists. moby/moby#53595
fixFix managed containerd logging a CRI pod-sandbox plugin dependency warning during startup. moby/moby#53585
fixFix user-namespace detection on OpenVZ, where namespace inode numbers are virtualized. moby/moby#53605
fixWindows: Preserve hard links when committing a container, so a file with multiple names is stored once in the resulting image layer instead of once per name. moby/moby#53624
otherUpdate containerd (static binaries) to v2.3.5. moby/moby#53589
fixFix GET /networks returning a 500 status if an invalid 'type' filter was provided. moby/moby#53678
otherdocker/cli, 29.8.0 milestone
othermoby/moby, 29.8.0 milestone
featureAdd HostConfig.Umask option and a corresponding --umask flag to docker create/docker run to set the umask for a container's main process, execs, and healthchecks. moby/moby#53463, docker/cli#7108
featureAdd support for attaching service names, environments, and custom CloudWatch entity attributes to logs from the awslogs logging driver. moby/moby#52632
securityAdd daemon support for configuring the default container AppArmor profile template. moby/moby#52771
securityPrevent containers from using the 32-bit socketcall(2) path to create AF_VSOCK sockets and communicate with host virtual machines by adding AppArmor and SELinux policy rules. moby/moby#53551
fixFix docker network inspect failing to find a healthy Swarm network when another Swarm network could not be allocated. moby/moby#53325
fixFix a node gossiping a superseded value for a Swarm service discovery entry after concurrent updates to the same key. moby/moby#53479
fixFix Swarm service names failing to resolve on a node indefinitely after it misses a network membership announcement. moby/moby#53437
fixFix Swarm service names failing to resolve on healthy nodes after a transient node failure. moby/moby#53142
otherPrevent dockerd from hanging when the nft command produces enough stderr output to fill its pipe. moby/moby#53517
otherReduce gossip traffic generated by a node that repeatedly disconnects and rejoins the cluster. moby/moby#53479
otherRemote network-driver plugins can now set the container-side interface name via the DstName field in their Join response. moby/moby#52866
otherReserve network names "container" and "container:" to prevent creation of unusable networks. moby/moby#51973
otherSpread the daemon's periodic Swarm overlay network gossip and synchronization work over time, avoiding recurring bursts of CPU and network usage. moby/moby#53475
otherSwarm service-mesh published ports now use the same infrastructure as published ports for local containers. moby/moby#53118
fixFix --disable-host-loopback not being enforced for the pasta network driver in rootless mode. moby/moby#53358
featureUpdate RootlessKit to v3.1.0, adding support for the pesto port driver in rootless mode. Set DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=pesto to use it; it requires the pasta network driver and supports IPv4 only. moby/moby#53358
otherUpdate minimum supported Go version to 1.26. docker/cli#7258
fixAdd annotation filter to container listings (docker ps, GET /containers/json) allowing to filter containers by their annotations. moby/moby#53538
fixcontainerd image store: Fix docker image inspect reporting a smaller image size than docker image ls. moby/moby#53426
fixcontainerd image store: Fix slower image pulls caused by repeated registry authentication within a single pull. moby/moby#53497
fixDo not log expected image signature identity misses as errors for containerd image store images. moby/moby#53495
fixdockerd now uses the embedded containerd if no system containerd service is configured and containerd is not installed. moby/moby#53388
fixFix GET /images/{name}/json not including unpacked snapshot usage in Size when using the containerd image store. moby/moby#53426
fixFix classic-builder cache for Dockerfile stages that select a non-host platform with FROM --platform. moby/moby#53503
fixFix CLI panic when DOCKER_HOST or -H specifies an invalid host. docker/cli#7280
fixFix health checks being delayed for too long when the start interval is longer than the start period. moby/moby#52317
fixFix inconsistent mount ordering in docker inspect output (GET /containers/{id}/json) and container listings (docker ps, GET /containers/json). moby/moby#53534
fixFix NRI container metadata so Container.Args includes the resolved executable as argv[0], matching the process launched in the container instead of only the Docker Cmd. moby/moby#53423
fixFix Swarm service creation failing when an automatically generated name is already in use. moby/moby#53468
fixFix the container root directory / being world-writable when using the btrfs storage driver. moby/moby#53500
fixFixed docker ps sorting published ports lexicographically instead of numerically. docker/cli#7144
fixPreserve service mount order during forced updates to avoid an unnecessary rollout on the next stack deploy. docker/cli#7227
fixPrevent containerd's v2 CRI plugins from loading when CRI is disabled. moby/moby#53564
fixPrint plugin hook output (e.g. the "What's next:" hint) after the command's error message instead of before it. docker/cli#6976
fixReject checkpoint IDs containing path separators to prevent access outside the container checkpoint directory. moby/moby#53377
otherUpdate BuildKit to v0.33.0. moby/moby#53554
otherUpdate containerd (static binaries) to v2.3.4. moby/moby#53409
otherUpdate Go runtime to 1.26.8. moby/moby#53550, docker/cli#7274
+1 more item in the release notesotherdocker/cli, 29.7.2 milestone
othermoby/moby, 29.7.2 milestone
fixFix docker service create and docker service update panicking when the same environment variable is passed more than once. docker/cli#7145
fixFix a regression introduced in Docker Engine 29.7.0 that caused image pulls to reject images containing absolute hardlink targets, as produced by some image builders. moby/moby#53305
fixFix a regression introduced in Docker Engine 29.7.0 that could cause image pulls and docker cp to fail on older Linux kernels when applying file permissions, including for device nodes. moby/moby#53305
otherUpdate BuildKit to v0.32.2. moby/moby#53300
otherImprove compatibility with more nftables releases by terminating base-chain policies with a semicolon. moby/moby#53303