CVE-2026-66016 Overview
CVE-2026-66016 is an information disclosure vulnerability affecting specific self-hosted Helm configurations. Generated Transport Layer Security (TLS) private keys may be retained in rendered manifests that are accessible to highly privileged local users. The flaw is classified under [CWE-312: Cleartext Storage of Sensitive Information]. Successful exploitation requires local access and high privileges, limiting the practical attack surface to insider threats or environments where administrative credentials have already been compromised.
Critical Impact
Highly privileged local users can retrieve TLS private keys from rendered Helm manifests, enabling decryption of intercepted traffic and impersonation of trusted services.
Affected Products
- Self-hosted Helm-based deployments referenced in the JFrog Security Advisories Overview
- JFrog Artifactory self-managed installations documented in the JFrog Artifactory Releases Documentation
- Kubernetes clusters running affected Helm charts under specific configuration settings
Discovery Timeline
- 2026-08-12 - CVE-2026-66016 published to the National Vulnerability Database (NVD)
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-66016
Vulnerability Analysis
The vulnerability stems from how certain self-hosted Helm chart configurations handle TLS key material during manifest rendering. When Helm generates TLS certificates during a release, the resulting private key material can be written into rendered manifests stored on the cluster or on local disk. These manifests are then accessible to users or service accounts that hold elevated privileges on the host or within the Kubernetes control plane.
An attacker with high local privileges can read the manifests and extract the private key, breaking the confidentiality and integrity guarantees of the TLS channel. Attack complexity is low because no exploitation primitive or memory corruption is required. The attacker only needs to read files or Kubernetes objects that already reside within the environment.
Root Cause
The root cause is cleartext storage of sensitive cryptographic material [CWE-312]. Helm templating retains the generated private key in the rendered output rather than storing it exclusively in a protected secret store with restricted access controls. Configuration-specific paths in the chart determine whether the key persists in the rendered manifest.
Attack Vector
Exploitation requires local access to the affected host or authenticated access to Kubernetes objects with permissions to read release manifests. An adversary with cluster-admin privileges, node access, or equivalent Helm release read permissions can query the rendered manifest and recover the embedded private key. The key can then be used to decrypt captured TLS sessions or to impersonate the service that owns the certificate.
No verified public exploit code is available for this issue. Refer to the JFrog Security Advisories Overview for vendor-specific technical detail.
Detection Methods for CVE-2026-66016
Indicators of Compromise
- Presence of BEGIN PRIVATE KEY or BEGIN RSA PRIVATE KEY strings inside rendered Helm manifests or helm get manifest output
- Unexpected reads of Helm release secrets or ConfigMaps by non-operator service accounts
- Copy or exfiltration of helm get all output to user home directories or external destinations
Detection Strategies
- Audit rendered manifests across all Helm releases and flag any that contain private key blocks embedded in ConfigMaps or resource specifications
- Enable Kubernetes API server audit logging and alert on get/list operations against Helm release storage by unexpected principals
- Correlate host-level file access to Helm release directories with the identity of the accessing user
Monitoring Recommendations
- Track privileged local user activity on hosts that run Helm CLI operations
- Monitor Kubernetes RBAC changes that expand read access to secrets or Helm release objects in the kube-system and application namespaces
- Alert on outbound transfers of manifest archives or helm command output
How to Mitigate CVE-2026-66016
Immediate Actions Required
- Inventory all self-hosted Helm releases and identify charts that generate TLS certificates during templating
- Rotate any TLS private keys that may have been rendered into manifests and reissue affected certificates
- Restrict local and Kubernetes RBAC permissions so only required operators can read release manifests and secrets
Patch Information
Apply vendor updates as they are published. Consult the JFrog Artifactory Releases Documentation for current self-managed release notes and the JFrog Security Advisories Overview for advisory-specific fixed versions and configuration guidance.
Workarounds
- Move TLS key generation out of Helm templates and into an external certificate manager such as cert-manager so keys are stored only in Kubernetes secrets with tight RBAC
- Configure Helm charts to reference pre-provisioned secrets rather than generating keys inline during helm install or helm upgrade
- Enable Kubernetes secret encryption at rest and enforce least-privilege RBAC on release storage and node filesystems
# Configuration example: audit rendered manifests for embedded private keys
for release in $(helm list -A -q); do
ns=$(helm list -A | awk -v r="$release" '$1==r {print $2}')
helm get manifest "$release" -n "$ns" \
| grep -E 'BEGIN (RSA |EC )?PRIVATE KEY' \
&& echo "[!] Private key found in release: $release ($ns)"
done
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

