/

CVE-2026-123047

Severity:

HIGH RISK

(7.5)

Cleartext Password Storage (CWE-312) in BaSyx Helm Chart

CVE-2026-123047

Received

Vulnerability type

Category:

Cleartext Storage of Sensitive Information

CWE:

CWE-312, CWE-522

Impact:

Credential disclosure and privilege escalation

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

When the bundled Keycloak is enabled, the BaSyx Helm chart can place generated user passwords—including the bootstrap administrator's password—in a Kubernetes ConfigMap. A principal who can read that ConfigMap may be able to log in as the administrator and gain full access to BaSyx APIs.

When the bundled Keycloak is enabled, the BaSyx Helm chart can place generated user passwords—including the bootstrap administrator's password—in a Kubernetes ConfigMap. A principal who can read that ConfigMap may be able to log in as the administrator and gain full access to BaSyx APIs.

Affected context

The issue affects BaSyx basyx chart deployments that enable the bundled Keycloak and render initialization users into the persistent <release>-basyx-keycloak-init-config ConfigMap. The bundled Keycloak is disabled by default, so deployments that do not enable it are not exposed through this configuration path. The ConfigMap may include a bootstrap administrator account with a non-temporary password.

The issue affects BaSyx basyx chart deployments that enable the bundled Keycloak and render initialization users into the persistent <release>-basyx-keycloak-init-config ConfigMap. The bundled Keycloak is disabled by default, so deployments that do not enable it are not exposed through this configuration path. The ConfigMap may include a bootstrap administrator account with a non-temporary password.

Exploit preconditions

  • Attack surface: Kubernetes API access to ConfigMaps in the release namespace
  • Required access: Permission to read the Keycloak initialization ConfigMap; Secret-read permission is not required
  • Trigger point: The principal reads the ConfigMap and uses an exposed password to authenticate to the bundled Keycloak
  • Why exploitation is possible: User credentials are stored in cleartext in a resource accessible to principals with ConfigMap read access, and the bootstrap account has the admin role
  • Attack surface: Kubernetes API access to ConfigMaps in the release namespace
  • Required access: Permission to read the Keycloak initialization ConfigMap; Secret-read permission is not required
  • Trigger point: The principal reads the ConfigMap and uses an exposed password to authenticate to the bundled Keycloak
  • Why exploitation is possible: User credentials are stored in cleartext in a resource accessible to principals with ConfigMap read access, and the bootstrap account has the admin role

Why this happens

The chart renders initialization-user credentials, including password values, into a persistent Kubernetes ConfigMap. ConfigMaps are not designed to protect sensitive data like passwords, so storing credentials there exposes them to principals who can read ConfigMaps. This is primarily CWE-312: Cleartext Storage of Sensitive Information, and is also related to CWE-522: Insufficiently Protected Credentials.

The chart renders initialization-user credentials, including password values, into a persistent Kubernetes ConfigMap. ConfigMaps are not designed to protect sensitive data like passwords, so storing credentials there exposes them to principals who can read ConfigMaps. This is primarily CWE-312: Cleartext Storage of Sensitive Information, and is also related to CWE-522: Insufficiently Protected Credentials.

Potential impact

  • A reader of the ConfigMap could obtain credentials for a Keycloak user.
  • Use of the bootstrap administrator's credentials could grant the attacker a Keycloak token with the admin role.
  • The resulting access could allow full rights to BaSyx APIs under the default ABAC rules.
  • Compromised accounts could be used to alter data or application configuration, depending on available API capabilities.
  • A reader of the ConfigMap could obtain credentials for a Keycloak user.
  • Use of the bootstrap administrator's credentials could grant the attacker a Keycloak token with the admin role.
  • The resulting access could allow full rights to BaSyx APIs under the default ABAC rules.
  • Compromised accounts could be used to alter data or application configuration, depending on available API capabilities.

General mitigation guidance

Defensive patterns include keeping passwords and other credentials out of ConfigMaps and placing them in appropriately protected Secret resources or an external secrets manager. Limit access to credential-bearing resources using least-privilege RBAC, and avoid exposing secrets in rendered manifests, logs, or other broadly readable artifacts. Use unique, non-default credentials, rotate any credentials that may have been exposed, and disable bundled components that are not needed.

Defensive patterns include keeping passwords and other credentials out of ConfigMaps and placing them in appropriately protected Secret resources or an external secrets manager. Limit access to credential-bearing resources using least-privilege RBAC, and avoid exposing secrets in rendered manifests, logs, or other broadly readable artifacts. Use unique, non-default credentials, rotate any credentials that may have been exposed, and disable bundled components that are not needed.

How teams detect issues like this

  • Review chart templates and rendered manifests for password values or credential fields written to ConfigMaps.
  • Use static analysis or policy checks to flag sensitive-key names and credential-like values in non-secret Kubernetes resources.
  • Audit RBAC bindings for principals that can read ConfigMaps in namespaces where the bundled Keycloak is enabled.
  • Monitor Keycloak authentication and BaSyx API audit logs for unexpected administrator logins or activity.
  • Review chart templates and rendered manifests for password values or credential fields written to ConfigMaps.
  • Use static analysis or policy checks to flag sensitive-key names and credential-like values in non-secret Kubernetes resources.
  • Audit RBAC bindings for principals that can read ConfigMaps in namespaces where the bundled Keycloak is enabled.
  • Monitor Keycloak authentication and BaSyx API audit logs for unexpected administrator logins or activity.

Sources

SourceLink
github.comgithub.com/eclipse-basyx/charts/pull/106
github.comgithub.com/eclipse-basyx/charts/releases/tag/basyx-3.12.2
github.comgithub.com/eclipse-basyx/charts/security/advisories/GHSA-6438-759f-6f8v
gitlab.eclipse.orggitlab.eclipse.org/security/cve-assignment/-/work_items/547

Frequently asked

questions

Reading the ConfigMap requires Kubernetes API access. An exposed password could then be used to authenticate to the bundled Keycloak, subject to the deployment's network and authentication controls.

The key prerequisite is permission to read the initialization ConfigMap in the release namespace. Secret-read access is not necessary.

Keep credentials out of ConfigMaps and store them in a suitably protected secret-management system, with access restricted to the components and administrators that need them.

Add manifest and template checks that reject credentials in non-secret resources, apply least-privilege RBAC, and rotate credentials when exposure is suspected.

Reading the ConfigMap requires Kubernetes API access. An exposed password could then be used to authenticate to the bundled Keycloak, subject to the deployment's network and authentication controls.

The key prerequisite is permission to read the initialization ConfigMap in the release namespace. Secret-read access is not necessary.

Keep credentials out of ConfigMaps and store them in a suitably protected secret-management system, with access restricted to the components and administrators that need them.

Add manifest and template checks that reject credentials in non-secret resources, apply least-privilege RBAC, and rotate credentials when exposure is suspected.

Find out what's already
exploitable in your codebase.