Skip to content
OpenAdvisories

Description

Moby is an open source container framework that is a key component of Docker Engine, Docker Desktop, and other distributions of container tooling or runtimes. Moby's networking implementation allows for many networks, each with their own IP address range and gateway, to be defined. This feature is frequently referred to as custom networks, as each network can have a different driver, set of parameters and thus behaviors. When creating a network, the `--internal` flag is used to designate a network as _internal_. The `internal` attribute in a docker-compose.yml file may also be used to mark a network _internal_, and other API clients may specify the `internal` parameter as well.

When containers with networking are created, they are assigned unique network interfaces and IP addresses. The host serves as a router for non-internal networks, with a gateway IP that provides SNAT/DNAT to/from container IPs.

Containers on an internal network may communicate between each other, but are precluded from communicating with any networks the host has access to (LAN or WAN) as no default route is configured, and firewall rules are set up to drop all outgoing traffic. Communication with the gateway IP address (and thus appropriately configured host services) is possible, and the host may communicate with any container IP directly.

In addition to configuring the Linux kernel's various networking features to enable container networking, `dockerd` directly provides some services to container networks. Principal among these is serving as a resolver, enabling service discovery, and resolution of names from an upstream resolver.

When a DNS request for a name that does not correspond to a container is received, the request is forwarded to the configured upstream resolver. This request is made from the container's network namespace: the level of access and routing of traffic is the same as if the request was made by the container itself.

As a consequence of this design, containers solely attached to an internal network will be unable to resolve names using the upstream resolver, as the container itself is unable to communicate with that nameserver. Only the names of containers also attached to the internal network are able to be resolved.

Many systems run a local forwarding DNS resolver. As the host and any containers have separate loopback devices, a consequence of the design described above is that containers are unable to resolve names from the host's configured resolver, as they cannot reach these addresses on the host loopback device. To bridge this gap, and to allow containers to properly resolve names even when a local forwarding resolver is used on a loopback address, `dockerd` detects this scenario and instead forward DNS requests from the host namework namespace. The loopback resolver then forwards the requests to its configured upstream resolvers, as expected.

Because `dockerd` forwards DNS requests to the host loopback device, bypassing the container network namespace's normal routing semantics entirely, internal networks can unexpectedly forward DNS requests to an external nameserver. By registering a domain for which they control the authoritative nameservers, an attacker could arrange for a compromised container to exfiltrate data by encoding it in DNS queries that will eventually be answered by their nameservers.

Docker Desktop is not affected, as Docker Desktop always runs an internal resolver on a RFC 1918 address.

Moby releases 26.0.0, 25.0.4, and 23.0.11 are patched to prevent forwarding any DNS requests from internal networks. As a workaround, run containers intended to be solely attached to internal networks with a custom upstream address, which will force all upstream DNS queries to be resolved from the container's network namespace.

Affected products

VendorProductAffectedFixed
moby moby >= 26.0.0-rc1, < 26.0.0-rc3, >= 25.0.0, < 25.0.5, < 23.0.11 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 docker.io 26.1.4+dfsg1-9 —
Debian 13 docker.io 26.1.4+dfsg1-9 —
Debian 12 docker.io No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS docker.io No fix yet —
Ubuntu 24.04 LTS docker.io-app 27.5.1-0ubuntu3~24.04.2 —
Ubuntu 22.04 LTS docker.io No fix yet —
Ubuntu 22.04 LTS docker.io-app 27.5.1-0ubuntu3~22.04.2 —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 24.04 LTS docker.io-app 26.1.3-0ubuntu1~24.04.1+esm1 USN-7161-1
Ubuntu Pro 22.04 LTS docker.io-app 26.1.3-0ubuntu1~22.04.1+esm1 USN-7161-2
Ubuntu Pro 20.04 LTS docker.io No fix yet —
Ubuntu Pro 20.04 LTS docker.io-app 26.1.3-0ubuntu1~20.04.1+esm1 USN-7161-2
Ubuntu Pro 18.04 LTS docker.io 20.10.21-0ubuntu1~18.04.3+esm2 USN-7161-2, USN-7161-1
Ubuntu Pro 16.04 LTS docker.io 18.09.7-0ubuntu1~16.04.9+esm2 USN-7161-2
ReleasePackageFixed inAdvisory
SLES 15 SP7 docker-stable 24.0.9_ce-150000.1.25.1 SUSE-SU-2026:0972-1, SUSE-SU-2025:03545-1
SLES 15 SP6 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
SLES 15 SP6 docker-stable 24.0.9_ce-150000.1.11.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1, SUSE-SU-2025:0226-1
SLES 15 SP5 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLES 15 SP5 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLES 15 SP4 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLES 15 SP4 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLES 15 SP3 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLES 15 SP3 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
Show 15 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES 12 SP5 docker 27.5.1_ce-98.123.1 SUSE-SU-2025:1102-1, SUSE-SU-2025:0992-1
SLES 12 SP5 docker-stable 24.0.9_ce-1.11.1 SUSE-SU-2026:1118-1, SUSE-SU-2025:1102-1, SUSE-SU-2025:03540-1
SLES for SAP 15 SP5 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLES for SAP 15 SP5 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLES for SAP 15 SP4 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLES for SAP 15 SP4 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLES for SAP 15 SP3 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLES for SAP 15 SP3 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLE Micro 6.1 docker 27.5.1_ce-slfo.1.1_1.1 SUSE-SU-2025:20259-1
SLE Micro 6.0 docker 27.5.1_ce-2.1 SUSE-SU-2025:20205-1
SLE Micro 5.5 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
SLE Micro 5.4 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
SLE Micro 5.3 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
SLE Micro 5.2 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
SLE Micro 5.1 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
SLE HPC 15 SP5 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLE HPC 15 SP5 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLE HPC 15 SP4 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLE HPC 15 SP4 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SLE HPC 15 SP3 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SLE HPC 15 SP3 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
SUSE Enterprise Storage 7.1 docker 27.5.1_ce-150000.218.1 SUSE-SU-2025:1062-1
SUSE Enterprise Storage 7.1 docker-stable 24.0.9_ce-150000.1.15.1 SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed docker 27.4.1_ce-12.1 openSUSE-SU-2024:14597-1
openSUSE Tumbleweed docker-stable 24.0.9_ce-6.1 openSUSE-SU-2024:14598-1
openSUSE Leap 15.6 docker 27.5.1_ce-150000.215.3 SUSE-SU-2025:1062-1, SUSE-SU-2025:0776-1
openSUSE Leap 15.6 docker-stable 24.0.9_ce-150000.1.11.1 SUSE-SU-2026:0972-1, SUSE-SU-2025:1062-1, SUSE-SU-2025:03545-1
ReleasePackageFixed inAdvisory
Alpine v3.24 docker 26.0.0-r0 —
Alpine v3.23 docker 26.0.0-r0 —
Alpine v3.22 docker 26.0.0-r0 —
Alpine v3.21 docker 26.0.0-r0 —
Alpine v3.20 docker 26.0.0-r0 —
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 docker 25.0.5-r0 —
Alpine v3.18 docker 25.0.2-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 docker 25.0.6-1.amzn2023.0.1 ALAS2023-2024-674

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 moby-engine 25.0.3-6 —
Azure Linux 2 (CBL-Mariner) moby-engine 24.0.9-9 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling aactl 0.4.12-r7 —
Wolfi rolling buf 1.30.1-r0 —
Wolfi rolling buildctl +1 0.13.1-r1 —
Wolfi rolling cadvisor +1 0.49.1-r4 —
Wolfi rolling cilium-cli 0.18.2-r2 —
Wolfi rolling conftest 0.50.0-r2 —
Wolfi rolling crossplane-crank 1.15.1-r1 —
Wolfi rolling ctop 0.7.7-r13 —
Wolfi rolling dagger 0.10.2-r1 —
Wolfi rolling docker-compose 2.25.0-r2 —
Wolfi rolling grype 0.74.7-r3 —
Wolfi rolling kaniko 1.21.1-r1 —
Wolfi rolling kargo 0.4.4-r2 —
Wolfi rolling ko 0.15.2-r4 —
Wolfi rolling kubescape 3.0.7-r1 —
Wolfi rolling melange 0.6.9-r4 —
Wolfi rolling spire-server 1.9.1-r4 —
Wolfi rolling syft 1.1.0-r0 —
Wolfi rolling tkn 0.36.0-r2 —
Wolfi rolling trivy 0.50.0-r1 —
Wolfi rolling up 0.26.0-r1 —
Wolfi rolling wolfictl 0.15.7-r1 —
Wolfi rolling zot 2.0.3-r0 —

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/docker/docker >= 26.0.0-rc1, < 26.0.0-rc3 26.0.0-rc3 GHSA-mq39-4gv4-mvpx
Go github.com/docker/docker >= 25.0.0, < 25.0.5 25.0.5 GHSA-mq39-4gv4-mvpx
Go github.com/docker/docker < 23.0.11 23.0.11 GHSA-mq39-4gv4-mvpx
Go github.com/docker/docker >= 25.0.0+incompatible, < 25.0.5+incompatible · >= 26.0.0-rc1+incompatible, < 26.0.0-rc3+incompatible 25.0.5+incompatible, 26.0.0-rc3+incompatible GO-2024-2659

Advisories 18

References