{"id":"CVE-2026-123047","kind":"vulnerability","aliases":["CVE-2026-123047"],"related":[],"title":"Eclipse BaSyx Helm chart stores Keycloak user passwords in plaintext ConfigMap","description":"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.\n\n\n\nThe 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.\n\n\n\nThe 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.","summary":"The basyx Helm chart writes Keycloak initialization users, including their passwords, into a Kubernetes ConfigMap instead of a Secret when the bundled Keycloak is enabled. A principal with ConfigMap read access in the release namespace, such as the built-in Kubernetes view role, can read the bootstrap admin password and log in as an admin with full BaSyx API rights.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["eclipse-basyx","helm","infrastructure","keycloak","kubernetes"],"not_affected_if":["chart-3.12.2-or-later","external-identity-provider","keycloak-disabled"],"how_to_check":"- Check whether the bundled Keycloak is enabled in the `basyx` release values (`keycloak.enabled` set to `true`).\n- List ConfigMaps in the release namespace and look for `<release>-basyx-keycloak-init-config` containing a `users.json` key with `credentials` values.\n- Check the chart version in use; affected versions are `3.0.0-rc.1` to `3.12.1`.","fix":"- Upgrade the `basyx` chart to `3.12.2`, which moves initialization users to the Keycloak credentials Secret.\n- Change the passwords of users that were created through the chart.","status":"open","published_at":"2026-11-05T13:17:07+00:00","first_seen_at":"2026-11-05T13:39:09+00:00","triaged_at":"2026-11-05T13:40:06+00:00","updated_at":"2026-11-05T13:40:06+00:00","category":"infrastructure","confidence":0.8,"triage":{"at":"2026-11-05T13:40:06Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the `basyx` chart to `3.12.2`, which moves initialization users to the Keycloak credentials Secret.\n- Change the passwords of users that were created through the chart.","reach":"network","title":"Eclipse BaSyx Helm chart stores Keycloak user passwords in plaintext ConfigMap","impact":"high","summary":"The basyx Helm chart writes Keycloak initialization users, including their passwords, into a Kubernetes ConfigMap instead of a Secret when the bundled Keycloak is enabled. A principal with ConfigMap read access in the release namespace, such as the built-in Kubernetes view role, can read the bootstrap admin password and log in as an admin with full BaSyx API rights.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["kubernetes","helm","eclipse-basyx","keycloak"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker reads admin password from ConfigMap, gains full BaSyx API rights.","analyst_note":"","how_to_check":"- Check whether the bundled Keycloak is enabled in the `basyx` release values (`keycloak.enabled` set to `true`).\n- List ConfigMaps in the release namespace and look for `<release>-basyx-keycloak-init-config` containing a `users.json` key with `credentials` values.\n- Check the chart version in use; affected versions are `3.0.0-rc.1` to `3.12.1`.","plain_action":"","needs_analyst":false,"not_affected_if":["keycloak-disabled","chart-3.12.2-or-later","external-identity-provider"],"who_is_affected":"Teams running the Eclipse BaSyx Helm chart with the bundled Keycloak enabled, which is off by default. Exposure comes from the ConfigMap holding plaintext passwords, so any principal with ConfigMap read access in that namespace, including the Kubernetes view role, can read them. Deployments with the bundled Keycloak disabled, or using an external identity provider, are not affected by this specific flaw.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000843,"input_tokens":4612,"output_tokens":764,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-123047':14A,17A '-2026':13A,16A '3.0.0':92C '3.12.1':95C '3.12.2':243C 'abac':217C 'access':55B 'admin':73B,80B,157C,211C 'administr':151C 'affect':258C 'api':84B,226C 'basyx':2A,20B,26B,83B,88C,98C,141C,216C,225C,246C 'basyx-keycloak-init-config':140C 'bootstrap':72B,150C 'built':64B,186C 'built-in':63B,185C 'bundl':46B,103C,231C 'carri':209C 'chang':263C 'chart':4A,28B,90C,99C,115C,247C,273C 'cleartext':118C 'clusterrol':190C 'config':144C 'configmap':11A,39B,53B,122C,139C,171C,197C 'creat':116C,270C 'credenti':132C,256C 'cve':12A,15A 'default':146C,215C,236C 'deploy':100C,229C 'disabl':234C 'eclips':1A,19B,87C 'eclipse-basyx':18B 'enabl':49B,105C 'fix':240C 'full':82B,221C 'helm':3A,21B,27B,89C 'hold':155C 'holder':182C 'includ':33B,128C,148C 'infrastructur':22B 'init':143C 'initi':31B,251C 'instead':40B 'issu':238C 'keycloak':6A,23B,30B,47B,104C,111C,142C,202C,232C,255C 'keycloak-init-config.yaml':125C 'keycloak.initialization.users':127C 'kubernet':24B,38B,66B,121C,188C 'log':76B,199C 'map':219C 'move':249C 'namespac':59B,178C 'non':163C 'non-temporari':162C 'password':8A,35B,74B,108C,165C,194C,265C 'persist':138C 'plaintext':10A 'princip':51B,167C 'rc.1':93C 'read':54B,70B,170C,192C 'releas':58B,177C 'render':126C 'result':207C 'right':85B,222C 'role':68B,158C,212C 'rule':218C 'secret':43B,174C,257C 'store':5A,106C 'templat':124C 'temporari':164C 'token':208C 'upgrad':261C 'user':7A,32B,112C,130C,152C,154C,205C,252C,259C,267C 'users.json':135C 'valu':133C 'version':91C,242C 'view':67B,189C 'write':29B","nicknames":[],"mitigations":[],"who_affected":"Teams running the Eclipse BaSyx Helm chart with the bundled Keycloak enabled, which is off by default. Exposure comes from the ConfigMap holding plaintext passwords, so any principal with ConfigMap read access in that namespace, including the Kubernetes view role, can read them. Deployments with the bundled Keycloak disabled, or using an external identity provider, are not affected by this specific flaw.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["eclipsebasyx","helm","high","infrastructure","keycloak","kubernetes"],"campaign_type":null,"first_public_at":"2026-11-05T13:17:07+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","cvss_by":"emo@eclipse.org","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-123047","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123047","severity":null,"published_at":"2026-11-05T13:17:07+00:00","modified_at":"2026-11-05T13:17:07+00:00","first_seen_at":"2026-11-05T13:39:09+00:00","fetched_at":"2026-11-05T13:39:09+00:00","note":null}],"documents":[{"id":76426,"url":"https://github.com/eclipse-basyx/charts/releases/tag/basyx-3.12.2","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":76427,"url":"https://github.com/eclipse-basyx/charts/security/advisories/GHSA-6438-759f-6f8v","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}