6.8 Medium
CVSS3
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
CHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
2.6 Low
CVSS2
Access Vector
NETWORK
Access Complexity
HIGH
Authentication
NONE
Confidentiality Impact
PARTIAL
Integrity Impact
NONE
Availability Impact
NONE
AV:N/AC:H/Au:N/C:P/I:N/A:N
0.002 Low
EPSS
Percentile
64.6%
Moby is an open source container framework developed by Docker Inc. that is
distributed as Docker, Mirantis Container Runtime, and various other
downstream projects/products. The Moby daemon component (dockerd
), which
is developed as moby/moby is commonly referred to as Docker. Swarm Mode,
which is compiled in and delivered by default in dockerd
and is thus
present in most major Moby downstreams, is a simple, built-in container
orchestrator that is implemented through a combination of SwarmKit and
supporting network code. The overlay
network driver is a core feature of
Swarm Mode, providing isolated virtual LANs that allow communication
between containers and services across the cluster. This driver is an
implementation/user of VXLAN, which encapsulates link-layer (Ethernet)
frames in UDP datagrams that tag the frame with the VXLAN metadata,
including a VXLAN Network ID (VNI) that identifies the originating overlay
network. In addition, the overlay network driver supports an optional,
off-by-default encrypted mode, which is especially useful when VXLAN
packets traverses an untrusted network between nodes. Encrypted overlay
networks function by encapsulating the VXLAN datagrams through the use of
the IPsec Encapsulating Security Payload protocol in Transport mode. By
deploying IPSec encapsulation, encrypted overlay networks gain the
additional properties of source authentication through cryptographic proof,
data integrity through check-summing, and confidentiality through
encryption. When setting an endpoint up on an encrypted overlay network,
Moby installs three iptables (Linux kernel firewall) rules that enforce
both incoming and outgoing IPSec. These rules rely on the u32
iptables
extension provided by the xt_u32
kernel module to directly filter on a
VXLAN packetโs VNI field, so that IPSec guarantees can be enforced on
encrypted overlay networks without interfering with other overlay networks
or other users of VXLAN. An iptables rule designates outgoing VXLAN
datagrams with a VNI that corresponds to an encrypted overlay network for
IPsec encapsulation. Encrypted overlay networks on affected platforms
silently transmit unencrypted data. As a result, overlay
networks may
appear to be functional, passing traffic as expected, but without any of
the expected confidentiality or data integrity guarantees. It is possible
for an attacker sitting in a trusted position on the network to read all of
the application traffic that is moving across the overlay network,
resulting in unexpected secrets or user data disclosure. Thus, because many
database protocols, internal APIs, etc. are not protected by a second layer
of encryption, a user may use Swarm encrypted overlay networks to provide
confidentiality, which due to this vulnerability this is no longer
guaranteed. Patches are available in Moby releases 23.0.3, and 20.10.24. As
Mirantis Container Runtimeโs 20.10 releases are numbered differently, users
of that platform should update to 20.10.16. Some workarounds are available.
Close the VXLAN port (by default, UDP port 4789) to outgoing traffic at the
Internet boundary in order to prevent unintentionally leaking unencrypted
traffic over the Internet, and/or ensure that the xt_u32
kernel module is
available on all nodes of the Swarm cluster.
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
ubuntu | 18.04 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 20.04 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 22.04 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 23.10 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 24.04 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 14.04 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 16.04 | noarch | docker | <ย any | UNKNOWN |
ubuntu | 18.04 | noarch | python-docker | <ย any | UNKNOWN |
ubuntu | 20.04 | noarch | python-docker | <ย any | UNKNOWN |
ubuntu | 22.04 | noarch | python-docker | <ย any | UNKNOWN |
github.com/moby/libnetwork/blob/d9fae4c73daf76c3b0f77e14b45b8bf612ba764d/drivers/overlay/encryption.go#L205-L207
github.com/moby/libnetwork/security/advisories/GHSA-gvm4-2qqg-m333
github.com/moby/moby/issues/43382
github.com/moby/moby/pull/45118
github.com/moby/moby/security/advisories/GHSA-232p-vwff-86mp
github.com/moby/moby/security/advisories/GHSA-33pg-m6jh-5237
github.com/moby/moby/security/advisories/GHSA-6wrf-mxfj-pf5p
github.com/moby/moby/security/advisories/GHSA-vwm3-crmr-xfxw
launchpad.net/bugs/cve/CVE-2023-28841
nvd.nist.gov/vuln/detail/CVE-2023-28841
security-tracker.debian.org/tracker/CVE-2023-28841
www.cve.org/CVERecord?id=CVE-2023-28841
6.8 Medium
CVSS3
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
CHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
2.6 Low
CVSS2
Access Vector
NETWORK
Access Complexity
HIGH
Authentication
NONE
Confidentiality Impact
PARTIAL
Integrity Impact
NONE
Availability Impact
NONE
AV:N/AC:H/Au:N/C:P/I:N/A:N
0.002 Low
EPSS
Percentile
64.6%