{"id":"CVE-2026-34984","summary":"External Secrets Operator has DNS exfiltration via getHostByName in its v2 template engine","details":"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.","aliases":["GHSA-r2pg-r6h7-crf3","GO-2026-5602"],"modified":"2026-07-08T08:12:57.387924279Z","published":"2026-04-14T01:48:41.166Z","related":["CGA-j9v8-m999-hhgr"],"database_specific":{"cwe_ids":["CWE-200"],"cna_assigner":"GitHub_M","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34984.json"},"references":[{"type":"WEB","url":"https://github.com/external-secrets/external-secrets/releases/tag/v2.3.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34984.json"},{"type":"ADVISORY","url":"https://github.com/external-secrets/external-secrets/security/advisories/GHSA-r2pg-r6h7-crf3"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34984"},{"type":"FIX","url":"https://github.com/external-secrets/external-secrets/commit/6800989bdc12782ca2605d3b8bf7f2876a16551a"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/external-secrets/external-secrets","events":[{"introduced":"0"},{"fixed":"1f9683fa65eb92e27f8a0adab2e483ff305fc1e9"},{"fixed":"6800989bdc12782ca2605d3b8bf7f2876a16551a"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"2.3.0"}],"cpe":"cpe:2.3:a:external-secrets:external_secrets_operator:*:*:*:*:*:*:*:*"}}],"versions":["helm-chart-2.2.0","v2.2.0","helm-chart-2.1.0","v2.1.0","helm-chart-2.0.1","v2.0.1","helm-chart-2.0.0","v2.0.0","helm-chart-1.3.2","v1.3.2","helm-chart-1.3.1","v1.3.1","v1.3.0","helm-chart-1.2.1","v1.2.1","helm-chart-1.2.0","v1.2.0","helm-chart-1.1.1","v1.1.1","helm-chart-1.1.0","v1.1.0","helm-chart-1.0.0","v1.0.0","v0.2.1-esoctl","v0.2.0-esoctl","helm-chart-0.20.4","v0.20.4","helm-chart-0.20.3","v0.20.3","helm-chart-0.20.2","v0.20.2","helm-chart-0.20.1","v0.20.1","v0.20.0","helm-chart-0.19.2","v0.19.2","v0.19.1","v0.19.0","v0.18.2","v0.18.1","v0.18.0","helm-chart-0.18.0-rc1","v0.18.0-rc1","v0.17.1-rc1","helm-chart-0.17.0","v0.17.0","v0.16.2","v0.16.1","helm-chart-0.16.0","v0.16.0","helm-chart-0.15.1","v0.15.1","v0.15.0","v0.14.4","v0.14.3","helm-chart-0.14.2","v0.14.2","helm-chart-0.14.1","v0.14.1","v0.14.0","v0.13.0","v0.1.0-esoctl","v0.1.0-render","v0.12.1","v0.12.0","v0.11.0","v0.10.7","helm-chart-0.10.6","v0.10.6","v0.10.5","v0.10.4","v0.10.3","helm-chart-0.10.2","v0.10.2","helm-chart-0.10.1","v0.10.1","helm-chart-0.10.0","v0.10.0","helm-chart-0.9.20","v0.9.20","helm-chart-0.9.19","v0.9.19","helm-chart-0.9.18","v0.9.18","helm-chart-0.9.17","v0.9.17","helm-chart-0.9.16","v0.9.16","helm-chart-0.9.15-2","v0.9.15-2","v0.9.15","helm-chart-0.9.14","v0.9.14","helm-chart-0.9.13","v0.9.13","helm-chart-0.9.12","v0.9.12","helm-chart-0.9.11","v0.9.11","helm-chart-0.9.10","v0.9.10","helm-chart-0.9.9","v0.9.9","helm-chart-0.9.8","v0.9.8","helm-chart-0.9.7","v0.9.7","helm-chart-0.9.6","v0.9.6","helm-chart-0.9.5","v0.9.5","helm-chart-0.9.4","v0.9.4","helm-chart-0.9.3","v0.9.3","helm-chart-0.9.2","v0.9.2","helm-chart-0.9.1","v0.9.1","helm-chart-0.9.0","v0.9.0","helm-chart-0.8.3","v0.8.3","helm-chart-0.8.2","v0.8.2","v0.7.3","v0.8.1","v0.7.2","helm-chart-0.8.1","helm-chart-0.8.0","v0.8.0","helm-chart-0.7.2","helm-chart-0.7.1","v0.7.1","helm-chart-0.7.0","v0.7.0","helm-chart-0.7.0-rc1","v0.7.0-rc1","helm-chart-0.6.1","v0.6.1","helm-chart-0.6.0","v0.6.0","helm-chart-0.6.0-rc1","v0.6.0-rc1","helm-chart-0.5.9","v0.5.9","helm-chart-0.5.8","v0.5.8","helm-chart-0.5.7","v0.5.7","helm-chart-0.5.6","v0.5.6","helm-chart-0.5.5","v0.5.5","helm-chart-0.5.4","v0.5.4","helm-chart-0.5.2","helm-chart-0.5.3","v0.5.3","v0.5.2","helm-chart-0.5.0","helm-chart-0.5.1","v0.5.1","v0.5.0","helm-chart-0.4.4","v0.4.4","helm-chart-0.4.3","v0.4.3","helm-chart-0.4.2","v0.4.2","helm-chart-0.4.1","v0.4.1","helm-chart-0.4.0","v0.4.0","helm-chart-0.3.11","v0.3.11","helm-chart-0.3.10","v0.3.10","helm-chart-0.3.9","v0.3.9","helm-chart-0.3.8","v0.3.8","helm-chart-0.3.7","v0.3.7","helm-chart-0.3.6","v0.3.6","v.0.3.6","helm-chart-0.3.5","v0.3.5","helm-chart-0.3.4","v0.3.4","helm-chart-0.3.3","v0.3.3","helm-chart-0.3.2","v0.3.2","helm-chart-0.3.1","v0.3.1","helm-chart-0.3.0","v0.3.0","v0.2.2","helm-chart-0.2.3","v0.2.3","helm-chart-0.2.2","helm-chart-0.2.1","v0.2.1","helm-chart-0.2.0","v0.2.0","v0.1.4","helm-chart-0.1.4","v0.1.3","helm-chart-0.1.3","helm-chart-0.1.2","helm-chart-0.1.1","v0.1.2","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-34984.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"}]}