CVE-2026-34984
Received Received - Intake
DNS Exfiltration via Template Injection in External Secrets Operator

Publication date: 2026-04-14

Last updated on: 2026-04-22

Assigner: GitHub, Inc.

Description
External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Versions 2.2.0 and below contain a vulnerability in runtime/template/v2/template.go where the v2 template engine removes env and expandenv from Sprig's TxtFuncMap() but leaves the getHostByName function accessible to user-controlled templates. Since ESO executes templates within the controller process, an attacker who can create or update templated ExternalSecret resources can invoke controller-side DNS lookups using secret-derived values. This creates a DNS exfiltration primitive, allowing fetched secret material to be leaked via DNS queries without requiring direct outbound network access from the attacker's workload. The impact is a confidentiality issue, particularly in environments where untrusted or lower-trust users can author templated ExternalSecret resources and the controller has DNS resolution capability. This issue has been fixed in version 2.3.0.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-14
Last Modified
2026-04-22
Generated
2026-05-07
AI Q&A
2026-04-14
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
external-secrets external_secrets_operator to 2.3.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-200 The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

CVE-2026-34984 is a high-severity confidentiality vulnerability in the External Secrets Operator (ESO) versions 2.2.0 and below. The vulnerability exists in the v2 template engine where the function getHostByName remains accessible to user-controlled templates, even though other potentially dangerous functions like env and expandenv are removed.

Since ESO executes these templates within its controller process, an attacker who can create or update templated ExternalSecret resources can exploit getHostByName to perform DNS lookups that include secret-derived values. This creates a DNS exfiltration channel, allowing sensitive secret data to be leaked via DNS queries without requiring direct outbound network access from the attacker's workload.

This vulnerability mainly impacts environments where untrusted or lower-trust users can author ExternalSecret templates and where the controller has DNS resolution capabilities. The issue was fixed in version 2.3.0 by removing the getHostByName function from the template functions.


How can this vulnerability impact me? :

This vulnerability can lead to a confidentiality breach by allowing attackers to exfiltrate secret information via DNS queries. Attackers do not need direct outbound network access from their workload to leak sensitive data, making it easier to bypass network restrictions.

If an attacker can create or modify templated ExternalSecret resources, they can leverage the getHostByName function to perform DNS lookups that encode secret material, effectively leaking it outside the environment.

This risk is especially significant in environments where untrusted or lower-trust users have the ability to author ExternalSecret templates and where the controller has DNS resolution capabilities.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability involves the External Secrets Operator (ESO) executing user-controlled templates that can invoke DNS lookups via the getHostByName function, potentially leaking secret data through DNS queries.

Detection can focus on monitoring DNS queries originating from the ESO controller process for unusual or suspicious patterns that may indicate exfiltration attempts.

Additionally, inspecting templated ExternalSecret resources for the presence of templates that use the getHostByName function or other suspicious template constructs can help identify exploitation attempts.

Specific commands are not provided in the available resources.


What immediate steps should I take to mitigate this vulnerability?

The primary mitigation is to upgrade the External Secrets Operator to version 2.3.0 or later, where the getHostByName function has been removed from the template function map, eliminating the DNS exfiltration vector.

Until the upgrade can be performed, restrict the ability of untrusted or lower-trust users to create or modify templated ExternalSecret resources, as this capability is required to exploit the vulnerability.

Also, consider limiting the DNS resolution capabilities of the ESO controller process if possible, to reduce the risk of DNS-based data exfiltration.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

This vulnerability creates a confidentiality issue by allowing secret material to be exfiltrated via DNS queries without requiring direct outbound network access from the attacker’s workload.

Such a confidentiality breach can impact compliance with data protection standards and regulations like GDPR and HIPAA, which mandate the protection of sensitive information and prevention of unauthorized data disclosure.

Environments where untrusted or lower-trust users can author templated ExternalSecret resources and where the controller has DNS resolution capability are particularly at risk, increasing the likelihood of sensitive data leakage.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart