Security information

Upgraded the following middleware component versions to resolve vulnerabilities in MKE:

  • [MKE-12209] NGINX Ingress Controller 1.12.1

  • [MKE-12188] Golang 1.23.7.

  • [MKE-12219] CoreDNS 1.12.1

  • [MKE-12219] Node Local DNS 1.25.0

  • [MKE-12200] cri-dockerd 0.3.17

  • [MKE-12217] Kubernetes 1.31.7

  • [MKE-12212] etcd 3.5.21

  • [MKE-12188] Alpine Linux 3.21

The following table details the specific CVEs addressed, including which images are affected per CVE.

CVE

Status

Image mitigated

Problem details from upstream

CVE-2025-31115

Resolved

  • ucp-sf-notifier

  • ucp

XZ Utils provide a general-purpose data-compression library plus command-line tools. In XZ Utils 5.3.3alpha to 5.8.0, the multithreaded .xz decoder in liblzma has a bug where invalid input can at least result in a crash. The effects include heap use after free and writing to an address based on the null pointer plus an offset. Applications and libraries that use the lzma_stream_decoder_mt function are affected. The bug has been fixed in XZ Utils 5.8.1, and the fix has been committed to the v5.4, v5.6, v5.8, and master branches in the xz Git repository. No new release packages will be made from the old stable branches, but a standalone patch is available that applies to all affected releases.

CVE-2025-30204

Resolved

  • ucp-etcd

  • ucp-coredns

  • ucp-controller

  • ucp

  • ucp-agent

  • ucp-azure-ip-allocator

golang-jwt is a Go implementation of JSON Web Tokens. Prior to 5.2.2 and 4.5.2, the function parse.ParseUnverified splits (via a call to strings.Split) its argument (which is untrusted data) on periods. As a result, in the face of a malicious request whose Authorization header consists of Bearer followed by many period characters, a call to that function incurs allocations to the tune of O(n) bytes (where n stands for the length of the function’s argument), with a constant factor of about 16. This issue is fixed in 5.2.2 and 4.5.2.

CVE-2025-27516

Resolved

  • ucp-sf-notifier

Jinja is an extensible templating engine. Prior to 3.1.6, an oversight in how the Jinja sandboxed environment interacts with the |attr filter allows an attacker that controls the content of a template to execute arbitrary Python code. To exploit the vulnerability, an attacker needs to control the content of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates. Jinja’s sandbox does catch calls to str.format and ensures they don’t escape the sandbox. However, it’s possible to use the |attr filter to get a reference to a string’s plain format method, bypassing the sandbox. After the fix, the |attr filter no longer bypasses the environment’s attribute lookup. This vulnerability is fixed in 3.1.6.

CVE-2025-27113

Resolved

  • ucp-interlock-proxy

  • ucp-interlock-config

libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a NULL pointer dereference in xmlPatMatch in pattern.c.

CVE-2025-24855

Resolved

  • ucp-interlock-proxy

  • ucp-interlock-config

numbers.c in libxslt before 1.1.43 has a use-after-free because, in nested XPath evaluations, an XPath context node can be modified but never restored. This is related to xsltNumberFormatGetValue, xsltEvalXPathPredicate, xsltEvalXPathStringNs, and xsltComputeSortResultInternal.

CVE-2025-22870

Resolved

  • ucp-secureoverlay-mgr

  • ucp-hardware-info

  • ucp-cfssl

  • ucp

  • ucp-secureoverlay-agent

  • ucp-controller

  • ucp-agent

  • ucp-etcd

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

  • ucp-azure-ip-allocator

Matching of hosts against proxy patterns can improperly treat an IPv6 zone ID as a hostname component. For example, when the NO_PROXY environment variable is set to “*.example.com”, a request to “[::1%25.example.com]:80` will incorrectly match and not be proxied.

CVE-2025-22869

Resolved

  • ucp-hardware-info

  • ucp-cfssl

  • ucp

  • ucp-controller

  • ucp-agent

  • ucp-etcd

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

  • ucp-azure-ip-allocator

SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted.

CVE-2025-22868

Resolved

  • ucp-secureoverlay-mgr

  • ucp

  • ucp-secureoverlay-agent

  • ucp-controller

  • ucp-agent

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

An attacker can pass a malicious malformed token which causes unexpected memory to be consumed during parsing.

CVE-2025-0725

Resolved

  • ucp-calico-cni-firewalld-chroot

  • ucp

  • ucp-secureoverlay-mgr

  • ucp-secureoverlay-agent

  • ucp-hardware-info

  • ucp-controller

  • ucp-cfssl

  • ucp-agent

  • ucp-etcd

  • ucp-azure-ip-allocator

When libcurl is asked to perform automatic gzip decompression of content-encoded HTTP responses with the CURLOPT_ACCEPT_ENCODING option, using zlib 1.2.0.3 or older, an attacker-controlled integer overflow would make libcurl perform a buffer overflow.

CVE-2024-55549

Resolved

  • ucp-interlock-proxy

  • ucp-interlock-config

xsltGetInheritedNsList in libxslt before 1.1.43 has a use-after-free issue related to exclusion of result prefixes.

CVE-2024-56326

Resolved

  • ucp-sf-notifier

Jinja is an extensible templating engine. Prior to 3.1.5, An oversight in how the Jinja sandboxed environment detects calls to str.format allows an attacker that controls the content of a template to execute arbitrary Python code. To exploit the vulnerability, an attacker needs to control the content of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates. Jinja’s sandbox does catch calls to str.format and ensures they don’t escape the sandbox. However, it’s possible to store a reference to a malicious string’s format method, then pass that to a filter that calls it. No such filters are built-in to Jinja, but could be present through custom filters in an application. After the fix, such indirect calls are also handled by the sandbox. This vulnerability is fixed in 3.1.5.

CVE-2024-56201

Resolved

  • ucp-sf-notifier

Jinja is an extensible templating engine. In versions on the 3.x branch prior to 3.1.5, a bug in the Jinja compiler allows an attacker that controls both the content and filename of a template to execute arbitrary Python code, regardless of if Jinja’s sandbox is used. To exploit the vulnerability, an attacker needs to control both the filename and the contents of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates where the template author can also choose the template filename. This vulnerability is fixed in 3.1.5.

CCVE-2024-45341

Resolved

  • ucp-secureoverlay-mgr

  • ucp-hardware-info

  • ucp-cfssl

  • ucp

  • ucp-secureoverlay-agent

  • ucp-controller

  • ucp-agent

  • ucp-etcd

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

  • ucp-azure-ip-allocator

A certificate with a URI which has a IPv6 address with a zone ID may incorrectly satisfy a URI name constraint that applies to the certificate chain. Certificates containing URIs are not permitted in the web PKI, so this only affects users of private PKIs which make use of URIs.

CVE-2024-45338

Resolved

  • ucp-etcd

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

  • ucp-azure-ip-allocator

An attacker can craft an input to the Parse functions that would be processed non-linearly with respect to its length, resulting in extremely slow parsing. This could cause a denial of service.

CVE-2024-45337

Resolved

  • ucp-etcd

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

  • ucp-azure-ip-allocator

Applications and libraries which misuse connection.serverAuthenticate (via callback field ServerConfig.PublicKeyCallback) may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that “A call to this function does not guarantee that the key offered is in fact used to authenticate.” Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/cry…@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.

CVE-2024-45336

Resolved

  • ucp-secureoverlay-mgr

  • ucp-hardware-info

  • ucp-cfssl

  • ucp

  • ucp-secureoverlay-agent

  • ucp-controller

  • ucp-agent

  • ucp-etcd

  • ucp-coredns

  • ucp-node-feature-discovery

  • ucp-kube-state-metrics

  • ucp-azure-ip-allocator

The HTTP client drops sensitive headers after following a cross-domain redirect. For example, a request to a.com/ containing an Authorization header which is redirected to b.com/ will not send that header to b.com. In the event that the client received a subsequent same-domain redirect, however, the sensitive headers would be restored. For example, a chain of redirects from a.com/, to b.com/1, and finally to b.com/2 would incorrectly send the Authorization header to b.com/2.

CVE-2024-24790

Resolved

  • ucp-node-local-dns

The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms.

CVE-2024-24786

Resolved

  • ucp-node-feature-discovery

The protojson.Unmarshal function can enter an infinite loop when unmarshaling certain forms of invalid JSON. This condition can occur when unmarshaling into a message which contains a google.protobuf.Any value, or when the UnmarshalOptions.DiscardUnknown option is set.

CVE-2024-12797

Resolved

  • ucp-sf-notifier

Clients using RFC7250 Raw Public Keys (RPKs) to authenticate a server may fail to notice that the server was not authenticated, because handshakes don’t abort as expected when the SSL_VERIFY_PEER verification mode is set. Impact summary: TLS and DTLS connections using raw public keys may be vulnerable to man-in-middle attacks when server authentication failure is not detected by clients. RPKs are disabled by default in both TLS clients and TLS servers. The issue only arises when TLS clients explicitly enable RPK use by the server, and the server, likewise, enables sending of an RPK instead of an X.509 certificate chain. The affected clients are those that then rely on the handshake to fail when the server’s RPK fails to match one of the expected public keys, by setting the verification mode to SSL_VERIFY_PEER. Clients that enable server-side raw public keys can still find out that raw public key verification failed by calling SSL_get_verify_result(), and those that do, and take appropriate action, are not affected. This issue was introduced in the initial implementation of RPK support in OpenSSL 3.2. The FIPS modules in 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected by this issue.

CVE-2024-10220

Resolved

  • ucp-node-feature-discovery

The Kubernetes kubelet component allows arbitrary command execution via specially crafted gitRepo volumes.This issue affects kubelet: through 1.28.11, from 1.29.0 through 1.29.6, from 1.30.0 through 1.30.2.

CVE-2024-8176

Resolved

  • ucp

  • ucp-sf-notifier

  • ucp-interlock-proxy

  • ucp-interlock-config

A stack overflow vulnerability exists in the libexpat library due to the way it handles recursive entity expansion in XML documents. When parsing an XML document with deeply nested entity references, libexpat can be forced to recurse indefinitely, exhausting the stack space and causing a crash. This issue could lead to denial of service (DoS) or, in some cases, exploitable memory corruption, depending on the environment and library usage.

CVE-2024-6345

Resolved

  • ucp-sf-notifier

A vulnerability in the package_index module of pypa/setuptools versions up to 69.1.1 allows for remote code execution via its download functions. These functions, which are used to download packages from URLs provided by users or retrieved from package index servers, are susceptible to code injection. If these functions are exposed to user-controlled inputs, such as package URLs, they can execute arbitrary commands on the system. The issue is fixed in version 70.0.