CVE-2024-29037 (published 2024-03-20T21:15Z)

datahub-helm provides the Kubernetes Helm charts for deploying Datahub and its dependencies on a Kubernetes cluster. Starting in version 0.1.143 and prior to version 0.2.182, due to configuration issues in the helm chart, if there was a successful initial deployment during a limited window of time, personal access tokens were possibly created with a default secret key. Since the secret key is a static, publicly available value, someone could inspect the algorithm used to generate personal access tokens and generate their own for an instance. Deploying with Metadata Service Authentication enabled would have been difficult during window of releases. If someone circumvented the helm settings and manually set Metadata Service Authentication to be enabled using environment variables directly, this would skip over the autogeneration logic for the Kubernetes Secrets and DataHub GMS would default to the signing key specified statically in the application.yml. Most deployments probably did not attempt to circumvent the helm settings to enable Metadata Service Authentication during this time, so impact is most likely limited. Any deployments with Metadata Service Authentication enabled should ensure that their secret values are properly randomized. Version 0.2.182 contains a patch for this issue. As a workaround, one may reset the token signing key to be a random value, which will invalidate active personal access tokens.


Weakness information:
cwe_id: NVD-CWE-noinfo
cwe_name: Insufficient Information
description: There is insufficient information about the issue to classify it; details are unkown or unspecified.
extended_description: Insufficient Information

Fix information:
repo_url: https://github.com/acryldata/datahub-helm
commit_details: repo_url: https://github.com/acryldata/datahub-helm
author: david-leifker
author_date: 2023-08-17 22:36:12-05:00
msg: fix(auth-secrets): fix system update secrets (#351)

* fix(auth-secret): remove auth secret from common template, cannot be used by all jobs
repository: repo_url: https://github.com/acryldata/datahub-helm
repo_name: acryldata/datahub-helm
description: Repository of helm charts for deploying DataHub on a Kubernetes cluster
repo_language: Mustache
owner: acryldata
file_changes: filename: Chart.yaml
change_type: ModificationType.MODIFY
diff: @@ -4,7 +4,7 @@ description: A Helm chart for LinkedIn DataHub
 type: application
 # This is the chart version. This version number should be incremented each time you make changes
 # to the chart and its templates, including the app version.
-version: 0.2.181
+version: 0.2.182
 # This is the version number of the application being deployed. This version number should be
 # incremented each time you make changes to the application.
 appVersion: 0.10.5

programming_language: Markdown
filename: _upgrade.tpl
change_type: ModificationType.MODIFY
diff: @@ -39,15 +39,6 @@ Return the env variables for upgrade jobs
   value: "{{ .Values.global.sql.datasource.url }}"
 - name: EBEAN_DATASOURCE_DRIVER
   value: "{{ .Values.global.sql.datasource.driver }}"
-{{- if .Values.global.datahub.metadata_service_authentication.enabled }}
-- name: DATAHUB_SYSTEM_CLIENT_ID
-  value: {{ .Values.global.datahub.metadata_service_authentication.systemClientId }}
-- name: DATAHUB_SYSTEM_CLIENT_SECRET
-  valueFrom:
-    secretKeyRef:
-      name: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretRef }}
-      key: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretKey }}
-{{- end }}
 - name: KAFKA_BOOTSTRAP_SERVER
   value: "{{ .Values.global.kafka.bootstrap.server }}"
 {{- if eq .Values.global.kafka.schemaregistry.type "INTERNAL" }}

programming_language: HTML
filename: datahub-cleanup-job-template.yml
change_type: ModificationType.MODIFY
diff: @@ -58,6 +58,15 @@ spec:
               args: [ "-u", "NoCodeDataMigrationCleanup" ]
               env:
                 {{- include "datahub.upgrade.env" . | nindent 16}}
+                {{- if .Values.global.datahub.metadata_service_authentication.enabled }}
+                - name: DATAHUB_SYSTEM_CLIENT_ID
+                  value: {{ .Values.global.datahub.metadata_service_authentication.systemClientId }}
+                - name: DATAHUB_SYSTEM_CLIENT_SECRET
+                  valueFrom:
+                    secretKeyRef:
+                      name: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretRef }}
+                      key: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretKey }}
+                {{- end }}
               {{- with .Values.datahubUpgrade.extraEnvs }}
                 {{- toYaml . | nindent 16 }}
               {{- end }}

programming_language: HTML
filename: datahub-nocode-migration-job.yml
change_type: ModificationType.MODIFY
diff: @@ -68,6 +68,15 @@ spec:
             - "dbType={{ .Values.datahubUpgrade.noCodeDataMigration.sqlDbType }}"
           env:
             {{- include "datahub.upgrade.env" . | nindent 12}}
+            {{- if .Values.global.datahub.metadata_service_authentication.enabled }}
+            - name: DATAHUB_SYSTEM_CLIENT_ID
+              value: {{ .Values.global.datahub.metadata_service_authentication.systemClientId }}
+            - name: DATAHUB_SYSTEM_CLIENT_SECRET
+              valueFrom:
+                secretKeyRef:
+                  name: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretRef }}
+                  key: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretKey }}
+            {{- end }}
           {{- with .Values.datahubUpgrade.extraEnvs }}
             {{- toYaml . | nindent 12 }}
           {{- end }}

programming_language: HTML
filename: datahub-restore-indices-job-template.yml
change_type: ModificationType.MODIFY
diff: @@ -70,6 +70,15 @@ spec:
                 - "batchDelayMs={{ .Values.datahubUpgrade.batchDelayMs }}"
               env:
                 {{- include "datahub.upgrade.env" . | nindent 16}}
+                {{- if .Values.global.datahub.metadata_service_authentication.enabled }}
+                - name: DATAHUB_SYSTEM_CLIENT_ID
+                  value: {{ .Values.global.datahub.metadata_service_authentication.systemClientId }}
+                - name: DATAHUB_SYSTEM_CLIENT_SECRET
+                  valueFrom:
+                    secretKeyRef:
+                      name: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretRef }}
+                      key: {{ .Values.global.datahub.metadata_service_authentication.systemClientSecret.secretKey }}
+                {{- end }}
               {{- with .Values.datahubUpgrade.extraEnvs }}
                 {{- toYaml . | nindent 16 }}
               {{- end }}

programming_language: HTML