CVE-2026-123047: Keycloak admin user password stored in cleartext in a ConfigMap in Eclipse BaSyx Helm Charts

Published Nov 5, 2026
·
Updated

In Eclipse BaSyx Helm Charts version 2.2.0 of the aas-basyx-v2-full chart, deployments with the bundled Keycloak enabled store the client secret of the basyx-technical-user OAuth2 client in cleartext in a Kubernetes ConfigMap. This client uses the client-credentials grant and its service account holds the realm admin role.

The chart correctly writes keycloak.technicalUser.clientSecret to a Kubernetes Secret, but the template basyx-keycloak-realm.yaml also substitutes the same value into the Keycloak realm-import JSON, which is stored in the ConfigMap <keycloak.fullnameOverride>-realm. A principal that can read ConfigMaps but not Secrets in the release namespace, such as a holder of the built-in Kubernetes view ClusterRole, can read the client secret from the ConfigMap. They can then exchange it at the Keycloak token endpoint for an access token with the admin role. That token grants full create, read, update, delete and execute rights on all BaSyx repositories and registries in the deployment.

The bundled Keycloak is disabled by default. No fixed release of the aas-basyx-v2-full chart exists. Affected users should migrate to the basyx chart, or deploy without the bundled Keycloak and rotate the basyx-technical-user client secret.

Other sources

In Eclipse BaSyx Helm Charts versions 3.0.0-rc.1 to 3.12.1 of the basyx chart, deployments with the bundled Keycloak enabled store the passwords of the Keycloak users that the chart creates in cleartext in a Kubernetes ConfigMap.

The template keycloak-init-config.yaml rendered keycloak.initialization.users, including each user's credentials[].value, as users.json into the persistent ConfigMap <release>-basyx-keycloak-init-config. By default this includes the bootstrap administrator user. That user holds the admin role and has a non-temporary password. A principal that can read ConfigMaps but not Secrets in the release namespace, such as a holder of the built-in Kubernetes view ClusterRole, can read the password from the ConfigMap and log in to Keycloak as this user. The resulting token carries the admin role, which the default BaSyx ABAC rules map to full rights on all BaSyx APIs in the deployment.

The bundled Keycloak is disabled by default. The issue is fixed in version 3.12.2 of the basyx chart, which moves the initialization users to the Keycloak credentials Secret. Affected users should upgrade and change the passwords of users that were created through the chart.

— MITRE

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Eclipse BaSyx Helm Charts basyx chart to a version that resolves this vulnerability.

    Fixed in 3.12.2
  2. Configuration

    Deploy without the bundled Keycloak.

    Bundled Keycloak enabled = false
  3. Operational

    Rotate the basyx-technical-user client secret.

  4. Operational

    Change the passwords of users created through the chart, including the bootstrap administrator user.

Event History

Nov 5, 2026
CVE Published
via MITRE·12:11 PM
Data Sourced
via MITRE·12:11 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·01:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Is a deployment affected when using the chart's default settings?

No. The bundled Keycloak is disabled by default. The exposure applies to deployments that enabled the bundled Keycloak and use a basyx chart version from 3.0.0-rc.1 through 3.12.1.

2

Who can retrieve the exposed credentials?

Any principal able to read ConfigMaps in the release namespace can retrieve them, even if it cannot read Kubernetes Secrets. This includes holders of the built-in Kubernetes view ClusterRole.

3

What access could an attacker gain with a recovered password?

By default, the exposed bootstrap administrator account has the Keycloak admin role and a non-temporary password. Its token receives full rights on all BaSyx APIs in the deployment under the default BaSyx ABAC rules.

4

How can I check whether credentials were exposed?

Inspect the persistent ConfigMap named <release>-basyx-keycloak-init-config in the release namespace. In affected deployments, its users.json content includes keycloak.initialization.users and credential values in cleartext.

5

What should be done after upgrading?

Upgrade the basyx chart to version 3.12.2 or later, which stores initialization users in the Keycloak credentials Secret. Change passwords for users created through the affected chart, including the bootstrap administrator account.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203