{"id":"CVE-2021-32690","aliases":["ALPINE-CVE-2021-32690","AZL-6471","BIT-helm-2021-32690","EUVD-2021-1265","GHSA-56hp-xqp3-w2jf","GHSA-7jr6-prv4-5wf5","GO-2022-0384"],"status":"published","title":"Repository credentials passed to alternate domain","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","severity":{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.01434,"percentile":0.73305,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200"],"published":"2021-06-16T22:10:10Z","modified":"2026-11-03T06:32:34Z","fixes":[{"ecosystem":"Go","package":"helm.sh/helm/v3","fixed_in":["3.6.1"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.17","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"helm","fixed_in":["3.6.1-r0"],"sources":["osv"]},{"ecosystem":"Azure Linux:2","package":"helm","fixed_in":["3.4.1-4"],"sources":["osv"]},{"ecosystem":"Bitnami","package":"helm","fixed_in":["3.6.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"helm.sh/helm/v3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.1-r0"}]}]},{"source":"osv","ecosystem":"Azure Linux:2","package":"helm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.1-4"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"helm","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.6.1"}]}]},{"source":"osv","ecosystem":"Go","package":"helm.sh/helm/v3","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.6.1"}]}]},{"source":"osv","ecosystem":"Go","package":"helm.sh/helm/v3","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.6.1"}]}]}],"products":[{"vendor":"helm","product":"helm"}],"references":[{"url":"https://github.com/helm/helm/security/advisories/GHSA-56hp-xqp3-w2jf","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/helm/helm/releases/tag/v3.6.1","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/helm/helm/commit/61d8e8c4a6f95540c15c6a65f36a6dd0a45e7a2f","tags":["web","fix"]},{"url":"https://pkg.go.dev/vuln/GO-2022-0384","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-32690","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-56hp-xqp3-w2jf","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7jr6-prv4-5wf5"},{"url":"https://security.alpinelinux.org/vuln/CVE-2021-32690","tags":["advisory"]},{"url":"https://github.com/helm/helm","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2021-32690","title":"Repository credentials passed to alternate domain","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2021-06-16T22:10:10Z","modified":"2024-08-03T23:25:31.09Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:33:07.349244Z"}],"euvd":[{"id":"EUVD-2021-1265","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2021-06-16T22:10:10Z","modified":"2024-08-03T23:25:31Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-03T03:24:36.41075Z"}],"ghsa":[{"id":"GHSA-7jr6-prv4-5wf5","title":"Duplicate Advisory: Helm passes repository credentials to alternate domain","description":"## Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-56hp-xqp3-w2jf. This link is maintained to preserve external references.\n\n## Original Description\nHelm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"withdrawn","published":"2021-06-23T18:14:31Z","modified":"2024-05-20T21:26:28Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:37:50.750599Z"},{"id":"GHSA-56hp-xqp3-w2jf","title":"Helm passes repository credentials to alternate domain","description":"While working on the Helm source, a Helm core maintainer discovered a situation where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository.\n\n### Impact\n\nThe `index.yaml` within a Helm chart repository contains a reference where to get the chart archive for each version of a chart. The reference can be relative to the `index.yaml` file or a URL to location. The URL can point to any domain and this is a feature leveraged by Helm users. For example, an `index.yaml` file can be hosted on GitHub pages while the chart archives are hosted as GitHub releases. These are on different domain names and the `index.yaml` file points to the other domain.\n\nWhen a username and password were associated with a Helm repository the username and password were also passed on to other domains referenced in the `index.yaml` file. This occurred when Helm went to retrieve a specific chart archive on the other domain.\n\n### Patches\n\nThis issue has been resolved in 3.6.1.\n\nThere is a slight behavior change to credential handling with regard to repositories. Usernames and passwords are only passed to the URL location of the Helm repository by default. The username and password are scoped to the scheme, host, and port of the Helm repository. To pass the username and password to other domains Helm may encounter when it goes to retrieve a chart, the new `--pass-credentials` flag can be used. This flag restores the old behavior for a single repository as an opt-in behavior.\n\n### Workarounds\n\nIf you use a username and password for a Helm repository you can audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed the credentials would have been passed on.\n\n### For more information\n\nHelm's security policy is spelled out in detail in our [SECURITY](https://github.com/helm/community/blob/master/SECURITY.md) document.\n","status":"published","published":"2021-06-23T18:14:15Z","modified":"2024-05-20T21:31:09Z","cwes":["CWE-200"],"updated_at":"2026-11-02T14:37:50.750599Z"}],"nvd":[{"id":"CVE-2021-32690","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2021-06-16T22:15:07.737Z","modified":"2026-06-17T03:53:25.95Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:06:54.892562Z"}],"osv":[{"id":"ALPINE-CVE-2021-32690","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2021-06-16T22:15:07.737Z","modified":"2026-11-03T06:32:34.141071547Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-03T07:17:20.312441Z"},{"id":"AZL-6471","title":"CVE-2021-32690 affecting package helm for versions less than 3.4.1-4","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2021-06-16T22:15:07Z","modified":"2026-04-21T04:32:31.670734Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:28:08.076947Z"},{"id":"CVE-2021-32690","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2021-06-16T22:15:07.737Z","modified":"2026-10-20T10:50:07.915783252Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:19.793849Z"},{"id":"GHSA-7jr6-prv4-5wf5","title":"Duplicate Advisory: Helm passes repository credentials to alternate domain","description":"## Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-56hp-xqp3-w2jf. This link is maintained to preserve external references.\n\n## Original Description\nHelm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"withdrawn","published":"2021-06-23T18:14:31Z","modified":"2026-09-10T03:49:05.61574834Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T15:46:41.002603Z"},{"id":"BIT-helm-2021-32690","title":"Repository credentials passed to alternate domain","description":"Helm is a tool for managing Charts (packages of pre-configured Kubernetes resources). In versions of helm prior to 3.6.1, a vulnerability exists where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository. This issue has been resolved in 3.6.1. There is a workaround through which one may check for improperly passed credentials. One may use a username and password for a Helm repository and may audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, one may look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed, the credentials would be passed on.","status":"published","published":"2024-03-06T10:54:16.903Z","modified":"2026-09-08T08:48:23.062587909Z","updated_at":"2026-11-02T15:28:31.02759Z"},{"id":"GHSA-56hp-xqp3-w2jf","title":"Helm passes repository credentials to alternate domain","description":"While working on the Helm source, a Helm core maintainer discovered a situation where the username and password credentials associated with a Helm repository could be passed on to another domain referenced by that Helm repository.\n\n### Impact\n\nThe `index.yaml` within a Helm chart repository contains a reference where to get the chart archive for each version of a chart. The reference can be relative to the `index.yaml` file or a URL to location. The URL can point to any domain and this is a feature leveraged by Helm users. For example, an `index.yaml` file can be hosted on GitHub pages while the chart archives are hosted as GitHub releases. These are on different domain names and the `index.yaml` file points to the other domain.\n\nWhen a username and password were associated with a Helm repository the username and password were also passed on to other domains referenced in the `index.yaml` file. This occurred when Helm went to retrieve a specific chart archive on the other domain.\n\n### Patches\n\nThis issue has been resolved in 3.6.1.\n\nThere is a slight behavior change to credential handling with regard to repositories. Usernames and passwords are only passed to the URL location of the Helm repository by default. The username and password are scoped to the scheme, host, and port of the Helm repository. To pass the username and password to other domains Helm may encounter when it goes to retrieve a chart, the new `--pass-credentials` flag can be used. This flag restores the old behavior for a single repository as an opt-in behavior.\n\n### Workarounds\n\nIf you use a username and password for a Helm repository you can audit the Helm repository in order to check for another domain being used that could have received the credentials. In the `index.yaml` file for that repository, look for another domain in the `urls` list for the chart versions. If there is another domain found and that chart version was pulled or installed the credentials would have been passed on.\n\n### For more information\n\nHelm's security policy is spelled out in detail in our [SECURITY](https://github.com/helm/community/blob/master/SECURITY.md) document.\n","status":"published","published":"2021-06-23T18:14:15Z","modified":"2026-09-10T03:49:15.199568593Z","cwes":["CWE-200"],"updated_at":"2026-11-02T15:46:37.864461Z"},{"id":"GO-2022-0384","title":"Repository credentials passed to alternate domain in helm.sh/helm/v3","description":"The username and password credentials associated with a Helm repository can be passed to another domain referenced by that Helm repository.\n\nIf the index.yaml for a Helm repository is hosted on one domain and references a chart archive on a different domain, Helm will provide the credentials for the index.yaml's domain when fetching those archives.","status":"published","published":"2022-07-15T23:29:45Z","modified":"2026-02-04T04:12:59.421557Z","updated_at":"2026-11-02T15:47:00.918515Z"}]}}
