{"id":"CVE-2026-123059","kind":"vulnerability","aliases":["CVE-2026-123059"],"related":[],"title":"Eclipse BaSyx Helm chart stores Keycloak client secret in ConfigMap","description":"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.\n\n\n\nThe 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.\n\n\n\nThe 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.","summary":"The aas-basyx-v2-full Helm chart 2.2.0 writes the bundled Keycloak client secret for basyx-technical-user into a ConfigMap in cleartext. Anyone who can read that ConfigMap can exchange the secret for an admin-role token with full rights on all BaSyx repositories and registries.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["eclipse-basyx","helm","keycloak","kubernetes","other"],"not_affected_if":["basyx-chart","default-config","keycloak-disabled"],"how_to_check":"- Check whether the `aas-basyx-v2-full` chart at version `2.2.0` is deployed, and whether the bundled Keycloak (`keycloak.technicalUser.clientSecret`) is enabled. It is disabled by default.\n- Inspect the ConfigMap `<keycloak.fullnameOverride>-realm` in the release namespace for a cleartext `basyx-technical-user` client secret.\n- Review which principals hold the built-in `view` ClusterRole or otherwise can read ConfigMaps in that namespace.","fix":"- No fixed release of the `aas-basyx-v2-full` chart exists.\n- Migrate to the `basyx` chart, or deploy without the bundled Keycloak and rotate the `basyx-technical-user` client secret.","status":"open","published_at":"2026-11-05T14:17:04+00:00","first_seen_at":"2026-11-05T14:39:18+00:00","triaged_at":"2026-11-05T14:40:25+00:00","updated_at":"2026-11-05T14:40:25+00:00","category":"other","confidence":0.85,"triage":{"at":"2026-11-05T14:40:25Z","model":"claude-haiku-5-5","output":{"fix":"- No fixed release of the `aas-basyx-v2-full` chart exists.\n- Migrate to the `basyx` chart, or deploy without the bundled Keycloak and rotate the `basyx-technical-user` client secret.","reach":"network","title":"Eclipse BaSyx Helm chart stores Keycloak client secret in ConfigMap","impact":"high","summary":"The aas-basyx-v2-full Helm chart 2.2.0 writes the bundled Keycloak client secret for basyx-technical-user into a ConfigMap in cleartext. Anyone who can read that ConfigMap can exchange the secret for an admin-role token with full rights on all BaSyx repositories and registries.","audience":"businesses","category":"other","nicknames":[],"who_cares":["kubernetes","helm","eclipse-basyx","keycloak"],"confidence":0.85,"fix_status":"none","needs_auth":"yes","worst_case":"Attacker gets admin token with full rights on repositories and registries","analyst_note":"","how_to_check":"- Check whether the `aas-basyx-v2-full` chart at version `2.2.0` is deployed, and whether the bundled Keycloak (`keycloak.technicalUser.clientSecret`) is enabled. It is disabled by default.\n- Inspect the ConfigMap `<keycloak.fullnameOverride>-realm` in the release namespace for a cleartext `basyx-technical-user` client secret.\n- Review which principals hold the built-in `view` ClusterRole or otherwise can read ConfigMaps in that namespace.","plain_action":"","needs_analyst":false,"not_affected_if":["keycloak-disabled","basyx-chart","default-config"],"who_is_affected":"Deployments of the aas-basyx-v2-full chart at version 2.2.0 with the bundled Keycloak enabled are exposed. Any principal that can read ConfigMaps in the release namespace, such as a holder of the built-in Kubernetes view ClusterRole, can obtain the secret. Teams that use the basyx chart or run without the bundled Keycloak can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.0016,"input_tokens":4645,"output_tokens":2272,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-123059':13A,16A '-2026':12A,15A '2.2.0':31B,79C 'aa':25B,83C,245C 'aas-basyx-v2-full':24B,82C,244C 'access':206C 'account':123C 'admin':61B,127C,210C 'admin-rol':60B 'affect':251C 'also':142C 'anyon':48B 'basyx':2A,19B,26B,40B,69B,75C,84C,101C,225C,246C,257C,269C 'basyx-keycloak-realm.yaml':141C 'basyx-technical-us':39B,100C,268C 'built':181C 'built-in':180C 'bundl':34B,91C,233C,263C 'chart':4A,30B,77C,87C,130C,249C,258C 'cleartext':47B,107C 'client':7A,36B,96C,105C,113C,117C,189C,272C 'client-credenti':116C 'clusterrol':185C 'configmap':10A,45B,53B,111C,159C,166C,193C 'correct':131C 'creat':216C 'credenti':118C 'cve':11A,14A 'default':238C 'delet':219C 'deploy':88C,231C,260C 'disabl':236C 'eclips':1A,18B,74C 'eclipse-basyx':17B 'enabl':93C 'endpoint':203C 'exchang':55B,197C 'execut':221C 'exist':250C 'fix':240C 'full':28B,65B,86C,215C,248C 'grant':119C,214C 'helm':3A,20B,29B,76C 'hold':124C 'holder':177C 'import':152C 'json':153C 'keycloak':6A,21B,35B,92C,149C,201C,234C,264C 'keycloak.technicaluser.clientsecret':133C 'kubernet':22B,110C,136C,183C 'migrat':254C 'namespac':173C 'oauth2':104C 'princip':162C 'read':51B,165C,187C,217C 'realm':126C,151C,160C 'realm-import':150C 'registri':72B,228C 'releas':172C,241C 'repositori':70B,226C 'right':66B,222C 'role':62B,128C,211C 'rotat':266C 'secret':8A,37B,57B,97C,137C,169C,190C,273C 'servic':122C 'store':5A,94C,156C 'substitut':143C 'technic':41B,102C,270C 'templat':140C 'token':63B,202C,207C,213C 'updat':218C 'use':114C 'user':42B,103C,252C,271C 'v2':27B,85C,247C 'valu':146C 'version':78C 'view':184C 'without':261C 'write':32B,132C","nicknames":[],"mitigations":[],"who_affected":"Deployments of the aas-basyx-v2-full chart at version 2.2.0 with the bundled Keycloak enabled are exposed. Any principal that can read ConfigMaps in the release namespace, such as a holder of the built-in Kubernetes view ClusterRole, can obtain the secret. Teams that use the basyx chart or run without the bundled Keycloak can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["eclipsebasyx","helm","high","keycloak","kubernetes","other"],"campaign_type":null,"first_public_at":"2026-11-05T14:17:04+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-123059","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123059","severity":null,"published_at":"2026-11-05T14:17:04+00:00","modified_at":"2026-11-05T14:17:04+00:00","first_seen_at":"2026-11-05T14:39:18+00:00","fetched_at":"2026-11-05T14:39:18+00:00","note":null}],"documents":[{"id":76818,"url":"https://github.com/eclipse-basyx/charts/releases/tag/aas-basyx-v2-full-2.2.0","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"}