CVE-2026-34984External Secrets Operator (ESO) 2.2.0及以下版本存在安全漏洞。虽然移除了部分敏感函数,但模板引擎仍保留了getHostByName。拥有权限的攻击者可构造恶意ExternalSecret资源,诱导控制器发起DNS查询,从而将秘密数据编码到子域名中实现外带,绕过网络限制造成信息泄露。
漏洞源于External Secrets Operator在runtime/template/v2/template.go中对Sprig函数库的处理不当。开发者在v2引擎中移除了env和expandenv以缓解风险,却遗漏了getHostByName函数。由于ESO在控制器进程内解析用户提供的模板,攻击者若具备创建或更新ExternalSecret资源的权限,即可在模板中调用getHostByName。利用方式是将窃取的敏感数据(如API Key)格式化为子域名的一部分,通过DNS查询发送至攻击者控制的域名服务器。这种利用方式利用了控制器的高权限网络环境,实现了无需攻击者Pod直接出网的DNS数据外带。该漏洞属于典型的模板注入导致的服务端请求伪造(SSRF)及信息泄露问题,影响Kubernetes集群中敏感配置的机密性。