GHSA-q8q8-93cv-v6h8 BIT-helm-2020-11013 CVE-2020-11013
Lookup function information discolosure in helm
- Severity
- 8.5 / 10
- High · CVSS 3.1
- Exploit chance (EPSS)
- 1.41%
- Chance of exploitation in the next 30 days. Higher than 72.70% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
- Fix
3.1.3- Upgrade helm.sh/helm/v3 to this version or later
Description
The Helm core maintainers have identified an information disclosure vulnerability in Helm 3.0.0-3.1.2.
Impact
lookup is a Helm template function introduced in Helm v3. It is able to lookup resources in the cluster to check for the existence of specific resources and get details about them. This can be used as part of the process to render templates.
The documented behavior of helm template states that it does not attach to a remote cluster. However, as the recently added lookup template function circumvents this restriction and connects to the cluster even during helm template and helm install|update|delete|rollback --dry-run. The user is not notified of this behavior.
Running helm template should not make calls to a cluster. This is different from install, which is presumed to have access to a cluster in order to load resources into Kubernetes. Helm 2 is unaffected by this vulnerability.
A malicious chart author could inject a lookup into a chart that, when rendered through helm template, performs unannounced lookups against the cluster a user's KUBECONFIG file points to. This information can then be disclosed via the output of helm template.
Patches
This issue has been fixed in Helm 3.2.0
Workarounds
Due to another bug (also fixed in Helm 3.2.0), the command helm lint will fail with an error if the lookup function is used in a chart. Therefore, run helm lint on an untrusted chart before running helm template.
Alternately, setting the KUBECONFIG environment variable to point to an empty Kubernetes configuration file will prevent unintended network connections.
Finally, a chart may be manually analyzed for the presence of a lookup function in any file in the templates/ directory.
For more information
If you have any questions or comments about this advisory:
- Open an issue in the Helm repository
- For security-specific issues, email us at cncf-helm-security@lists.cncf.io
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| helm.sh/helm/v3 | >= 3.0.0, < 3.1.3 |
3.1.3 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
helm.sh/helm/v3 Go → 3.1.3
- go
go get helm.sh/helm/v3@v3.1.3 && go mod tidy
Severity breakdown
CVSS 3.1 8.5
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Changed
- Confidentiality
- High
- Integrity
- Low
- Availability
- None
Weakness
CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
How to prevent it
- Architecture and Design: Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
References
Advisories
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-hr2v-4r36-88hr Helm Chart extraction output directory collapse via `Chart.yaml` name dot-segment | Medium | Also affects helm.sh/helm/v3 |
| GHSA-f9f8-9pmf-xv68 Helm May Panic Due To Incorrect YAML Content | Medium | Also affects helm.sh/helm/v3 |
| GHSA-9h84-qmv7-982p Helm Charts with Specific JSON Schema Values Can Cause Memory Exhaustion | Medium | Also affects helm.sh/helm/v3 |
| GHSA-557j-xg8c-q2mm Helm vulnerable to Code Injection through malicious chart.yaml content | High | Also affects helm.sh/helm/v3 |
| GHSA-5xqw-8hwv-wg92 Helm Allows A Specially Crafted JSON Schema To Cause A Stack Overflow | Medium | Also affects helm.sh/helm/v3 |
| GHSA-4hfp-h4cw-hj8p Helm Allows A Specially Crafted Chart Archive To Cause Out Of Memory Termination | Medium | Also affects helm.sh/helm/v3 |
| GHSA-r53h-jv2g-vpx6 Helm's Missing YAML Content Leads To Panic | High | Also affects helm.sh/helm/v3 |
| GHSA-v53g-5gjp-272r Helm dependency management path traversal | Medium | Also affects helm.sh/helm/v3 |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor