In Helm before versions 2.16.11 and 3.3.2, a Helm repository can contain duplicates of the same chart, with the last one always used. If a…
GitHub_M·CWE-74·Published 2020-09-17
In Helm before versions 2.16.11 and 3.3.2, a Helm repository can contain duplicates of the same chart, with the last one always used. If a repository is compromised, this lowers the level of access that an attacker needs to inject a bad chart into a repository. To perform this attack, an attacker must have write access to the index file (which can occur during a MITM attack on a non-SSL connection). This issue has been patched in Helm 3.3.2 and 2.16.11. A possible workaround is to manually review the index file in the Helm repository cache before installing software.
In Helm before versions 2.16.11 and 3.3.2, a Helm repository can contain duplicates of the same chart, with the last one always used. If a repository is compromised, this lowers the level of access that an attacker needs to inject a bad chart into a repository. To perform this attack, an attacker must have write access to the index file (which can occur during a MITM attack on a non-SSL connection). This issue has been patched in Helm 3.3.2 and 2.16.11. A possible workaround is to manually review the index file in the Helm repository cache before installing software.
### Impact During a security audit of Helm's code base, security researchers at Trail of Bits identified a bug in which the a Helm repository can contain duplicates of the same chart, with the last one always used. If a repository is compromised, this lowers the level of access that an attacker needs to inject a bad chart into a repository. To perform this attack, an attacker must have write access to the index file (which can occur during a MITM attack on a non-SSL connection). ### Specific Go Packages Affected helm.sh/helm/v3/pkg/repo ### Patches This issue has been patched in Helm 3.3.2 and 2.16.11 ### Workarounds - do not install charts from repositories you do not trust - fetch charts using a secure channel of communication (such as TLS) - use `helm pull` to fetch the chart, then review the chart’s content (either manually, or with `helm verify` if it has been signed) to ensure it has not been tampered with - manually review the index file in the Helm repository cache before installing software.
### Impact During a security audit of Helm's code base, security researchers at Trail of Bits identified a bug in which the a Helm repository can contain duplicates of the same chart, with the last one always used. If a repository is compromised, this lowers the level of access that an attacker needs to inject a bad chart into a repository. To perform this attack, an attacker must have write access to the index file (which can occur during a MITM attack on a non-SSL connection). ### Specific Go Packages Affected helm.sh/helm/v3/pkg/repo ### Patches This issue has been patched in Helm 3.3.2 and 2.16.11 ### Workarounds - do not install charts from repositories you do not trust - fetch charts using a secure channel of communication (such as TLS) - use `helm pull` to fetch the chart, then review the chart’s content (either manually, or with `helm verify` if it has been signed) to ensure it has not been tampered with - manually review the index file in the Helm repository cache before installing software.
En Helm versiones anteriores a 2.16.11 y 3.3.2, un repositorio de Helm puede contener duplicados del mismo gráfico, y siempre se usa el último. Si un repositorio está comprometido, esto reduce el nivel de acceso que necesita un atacante para inyectar un gráfico incorrecto en un repositorio. Para llevar a cabo este ataque, un atacante necesita tener acceso de escritura al archivo de index (lo que puede ocurrir durante un ataque MITM en una conexión no SSL). Este problema ha sido corregido en Helm versiones 3.3.2 y 2.16.11. Una posible solución es revisar manualmente el archivo index en la caché del repositorio de Helm antes de instalar el software
| Version | Type | Source | Base | Exp | Impact | Vector |
|---|---|---|---|---|---|---|
| 2.0 | Primary | NVD | 4.0 | 8.0 | 2.9 | AV:N/AC:L/Au:S/C:N/I:P/A:N |
| 3.1 | Primary | NVD | 2.7 | 1.2 | 1.4 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N |
| 3.1 | Primary | cve.org | 2.2 | — | — | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N |
| 3.1 | Primary | cve.org | 2.2 | — | — | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N |
| 3.1 | Secondary | GHSA | 2.2 | — | — | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N |
| 3.1 | Secondary | NVD | 2.2 | 0.7 | 1.4 | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N |