Version 1.20.x#
Release notes for Nubus for Kubernetes 1.20.x:
Version 1.20.0 - 2026-05-22#
This is the thirtieth production release of Nubus for Kubernetes.
Upgrade path
For the upgrade to version 1.20.0, your deployment must run on version 1.19.x. For the general steps to upgrade an existing Nubus for Kubernetes deployment, see Upgrade in Univention Nubus for Kubernetes - Operation Manual [1].
Release highlights#
- Nubus metrics
The UDM HTTP REST API includes a new metrics endpoint. Operators can retrieve basic Nubus metrics, including the number of users, the software version, and the license status. Operators can use these metrics in standard tools such as Prometheus and Grafana to improve observability.
- Technical details for UDM objects in the Management UI
The Management UI includes a new section with technical details for objects in Univention Directory Manager (UDM). Administrators can view and search technical identifiers and view creation and modification timestamps for all objects.
- LDAP server storage configuration
Operators can configure LDAP server deployments to use different storage configurations for the LDAP database and runtime volumes. Moving runtime data to smaller, lower-cost storage can reduce storage costs.
- Structured logging
Version 1.20.0 is the last release that uses “old-style” plain logging as the default. Nubus for Kubernetes 1.21 changes the default to structured logging. To keep plain logging in your deployment, Univention recommends setting all structured-logging configuration options to
false. Univention will mark “old-style” plain logging as deprecated and remove it in a future release. For details, see Logging in Univention Nubus for Kubernetes - Operation Manual [1].
Migration steps#
This section lists necessary migration steps that can apply to your deployment. Complete the relevant steps before you upgrade.
Refactor the LDAP server persistence values to support granular PVC configuration. Operators who customize any of the following Helm Chart values need to migrate their values to the new structure.
- LDAP Server
Move
nubusLdapServer.persistence.accessModestonubusLdapServer.persistence.volumes.sharedData.accessModes.Move
nubusLdapServer.persistence.sizetonubusLdapServer.persistence.volumes.sharedData.size.Move
nubusLdapServer.persistence.storageClasstonubusLdapServer.persistence.volumes.sharedData.storageClass.Remove
nubusLdapServer.persistence.annotations,nubusLdapServer.persistence.dataSource,nubusLdapServer.persistence.existingClaim,nubusLdapServer.persistence.labels, andnubusLdapServer.persistence.selector. Nubus for Kubernetes no longer supports these values.
Changes#
The following changes are organized by Nubus for Kubernetes component.
LDAP server#
The LDAP server Helm Chart now lets you configure storage independently
for the LDAP database and the slapd runtime state.
Previously, both shared the same PersistentVolumeClaim (PVC) settings.
This could require operators to use high-performance storage
for transient runtime files.
You can now assign separate storage classes to the two volumes:
shared-dataHolds the LDAP database and requires a storage class that provides the performance, data consistency, and reliability guarantees required for a database backend. Configure it through
nubusLdapServer.persistence.volumes.sharedData.*.shared-runHolds transient
slapdruntime state, such as the socket and PID file, which the LDAP Notifier requires. This volume can be small and doesn’t require high-performance storage, so operators can assign it to a lower-cost storage class. Configure it throughnubusLdapServer.persistence.volumes.sharedRun.*.
The nubusLdapServer.persistence.enabled flag controls only the shared-data volume.
The shared-run volume is always provisioned as a PVC regardless of this setting,
because the LDAP Server must share the slapd socket
with the LDAP Notifier.
For the required value migration, see Migration steps.
UMC server#
This release fixes a file descriptor leak that occurred during PAM authentication through SSSD.
In affected versions, each authentication attempt could leave an open Unix domain socket to the SSSD PAM service. Over time, this caused the number of open file descriptors in the UMC server process to grow linearly with the total number of logins, not with the number of concurrent sessions.
After the process reached the system limit,
further authentication attempts failed with the message:
OSError: [Errno 24] Too many open files
Shared PAM handles across multiple threads caused the issue. They prevented proper cleanup of SSSD client sockets.
Operators don’t need to take action. Before this fix, affected systems might have required periodic service restarts to recover.
Included errata updates#
The errata updates contain fixes for the following CVEs:
- Genshi
CVE-2026-0685 (unknown)
- apache2-bin
CVE-2001-1534 (low)
CVE-2003-1307 (medium)
CVE-2003-1580 (medium)
CVE-2003-1581 (low)
CVE-2007-1743 (medium)
CVE-2007-3303 (medium)
CVE-2008-0456 (low)
CVE-2026-23918 (high)
CVE-2026-24072 (high)
CVE-2026-28780 (critical)
CVE-2026-29168 (high)
CVE-2026-29169 (high)
CVE-2026-33006 (medium)
CVE-2026-33007 (medium)
CVE-2026-33523 (medium)
CVE-2026-33857 (medium)
CVE-2026-34032 (medium)
CVE-2026-34059 (high)
- axios
CVE-2025-62718 (critical)
CVE-2026-39865 (medium)
CVE-2026-40175 (medium)
CVE-2026-42033 (high)
CVE-2026-42034 (medium)
CVE-2026-42035 (high)
CVE-2026-42036 (medium)
CVE-2026-42037 (medium)
CVE-2026-42038 (high)
CVE-2026-42039 (high)
CVE-2026-42040 (low)
CVE-2026-42041 (medium)
CVE-2026-42042 (medium)
CVE-2026-42043 (critical)
CVE-2026-42044 (critical)
CVE-2026-42264 (critical)
- bcpkix-jdk18on
CVE-2026-5588 (unknown)
- bcprov-jdk18on
CVE-2026-0636 (unknown)
CVE-2026-5588 (unknown)
CVE-2026-5598 (unknown)
- brace-expansion
CVE-2026-25547 (unknown)
- dompurify
CVE-2025-15599 (medium)
- follow-redirects
CVE-2026-40895 (high)
- future
CVE-2025-50817 (medium)
- gson
CVE-2025-53864 (medium)
- iputils-ping
CVE-2025-47268 (medium)
- js-yaml
CVE-2025-64718 (medium)
- jwcrypto
CVE-2026-39373 (medium)
- keycloak-js
CVE-2023-6484 (medium)
- keycloak-model-storage-services
CVE-2025-9162 (medium)
- keycloak-quarkus-server
CVE-2024-11735 (unknown)
- keycloak-services
CVE-2026-1190 (low)
CVE-2026-1518 (low)
CVE-2026-2733 (low)
CVE-2026-4366 (medium)
CVE-2026-7500 (medium)
- kotlin-stdlib
CVE-2022-24329 (medium)
- libasound2
CVE-2026-25068 (unknown)
- libasound2-data
CVE-2026-25068 (unknown)
- libavahi-client3
CVE-2024-52615 (medium)
CVE-2024-52616 (medium)
CVE-2025-59529 (medium)
CVE-2025-68276 (medium)
CVE-2025-68468 (medium)
CVE-2025-68471 (medium)
CVE-2026-24401 (medium)
CVE-2026-34933 (medium)
- libavahi-common-data
CVE-2024-52615 (medium)
CVE-2024-52616 (medium)
CVE-2025-59529 (medium)
CVE-2025-68276 (medium)
CVE-2025-68468 (medium)
CVE-2025-68471 (medium)
CVE-2026-24401 (medium)
CVE-2026-34933 (medium)
- libavahi-common3
CVE-2024-52615 (medium)
CVE-2024-52616 (medium)
CVE-2025-59529 (medium)
CVE-2025-68276 (medium)
CVE-2025-68468 (medium)
CVE-2025-68471 (medium)
CVE-2026-24401 (medium)
CVE-2026-34933 (medium)
- libc-ares2
CVE-2023-31124 (low)
CVE-2023-31147 (medium)
CVE-2024-25629 (medium)
- libc-bin
CVE-2026-5358 (unknown)
- libc-dev-bin
CVE-2026-5358 (unknown)
- libc-l10n
CVE-2026-5358 (unknown)
- libc6
CVE-2026-5358 (unknown)
- libc6-dev
CVE-2026-5358 (unknown)
- libcups2
CVE-2025-58436 (medium)
CVE-2025-61915 (medium)
CVE-2026-27447 (medium)
CVE-2026-34978 (medium)
CVE-2026-34979 (medium)
CVE-2026-34980 (high)
CVE-2026-34990 (high)
CVE-2026-39314 (medium)
CVE-2026-39316 (medium)
CVE-2026-41079 (medium)
- libfreetype6
CVE-2026-23865 (medium)
- libgnutls30
CVE-2025-14831 (medium)
CVE-2025-9820 (medium)
- liblcms2-2
CVE-2026-41254 (high)
CVE-2026-42798 (medium)
- libnfsidmap1
CVE-2025-12801 (medium)
- libnss-sss
CVE-2026-6245 (medium)
- libnss-sudo
CVE-2005-1119 (low)
- libnss3
CVE-2023-5388 (medium)
CVE-2023-6135 (medium)
CVE-2024-7531 (medium)
CVE-2026-6766 (high)
CVE-2026-6767 (medium)
CVE-2026-6772 (high)
- libpam-sss
CVE-2026-6245 (medium)
- libpng16-16
CVE-2026-33416 (high)
CVE-2026-33636 (high)
CVE-2026-34757 (medium)
- libssl3
CVE-2026-28387 (high)
CVE-2026-28389 (high)
CVE-2026-28390 (high)
CVE-2026-31790 (high)
- libsss-certmap0
CVE-2026-6245 (medium)
- libsss-idmap0
CVE-2026-6245 (medium)
- libsss-nss-idmap0
CVE-2026-6245 (medium)
- libsss-sudo
CVE-2026-6245 (medium)
- libtiff6
CVE-2026-4775 (high)
- locales
CVE-2026-5358 (unknown)
- lodash
CVE-2025-13465 (medium)
CVE-2026-2950 (medium)
- lodash-es
CVE-2025-13465 (medium)
CVE-2026-2950 (medium)
- loguru
CVE-2022-0338 (medium)
- netty-codec
CVE-2026-42583 (high)
- netty-codec-dns
CVE-2026-42579 (critical)
- netty-codec-http
CVE-2026-33870 (high)
CVE-2026-41417 (medium)
CVE-2026-42580 (medium)
CVE-2026-42581 (critical)
CVE-2026-42584 (critical)
CVE-2026-42585 (high)
CVE-2026-42587 (high)
- netty-codec-http2
CVE-2026-33871 (high)
CVE-2026-42587 (high)
- netty-handler-proxy
CVE-2026-42578 (high)
- netty-transport-native-epoll
CVE-2026-42577 (high)
- nginx
CVE-2026-28755 (medium)
- nginx-common
CVE-2026-28755 (medium)
- openjdk-17-jre-headless
CVE-2026-22007 (low)
CVE-2026-22013 (medium)
CVE-2026-22016 (high)
CVE-2026-22018 (low)
CVE-2026-22021 (medium)
CVE-2026-34268 (low)
CVE-2026-34282 (high)
- openssh-client
CVE-2025-61984 (low)
CVE-2025-61985 (low)
CVE-2026-3497 (unknown)
- openssl
CVE-2026-28387 (high)
CVE-2026-28389 (high)
CVE-2026-28390 (high)
CVE-2026-31790 (high)
- opentelemetry-api
CVE-2026-45292 (medium)
- poetry
CVE-2026-34591 (medium)
CVE-2026-41140 (unknown)
- postgresql
CVE-2026-42198 (high)
- prismjs
CVE-2024-53382 (medium)
- python-ldap
CVE-2025-61911 (medium)
CVE-2025-61912 (medium)
- python3-ldap
CVE-2025-61911 (medium)
CVE-2025-61912 (medium)
- python3-sss
CVE-2026-6245 (medium)
- python3-tornado
CVE-2025-67724 (medium)
- quarkus-vertx-http
CVE-2026-39852 (high)
- sssd-common
CVE-2026-6245 (medium)
- sssd-krb5-common
CVE-2026-6245 (medium)
- sssd-ldap
CVE-2026-6245 (medium)
- tornado
CVE-2025-67724 (medium)
- vertx-core
CVE-2026-6860 (medium)